- 博客(38)
- 收藏
- 关注
原创 寒假学习总结
在写题时,依赖题解是很大的一个不足之处,在这点上也反映了数学逻辑能力的不足,有时候一个题要写很多遍才会懂,但隔一下又不会写了。//调用qsort,对coins数组进行排序,每个元素大小为sizeof(struct coin),使用cmp函数进行比较,排序后,数组按rate从高到低排列。- 回溯处理:某些问题需在递归返回时恢复状态,如在求所有可能解的问题中,可能需撤销当前节点的某些修改,确保不影响其他搜索路径。- 访问标记:进入节点后,立刻标记为已访问,防止重复访问造成死循环,可用布尔数组或哈希表标记。
2025-02-19 16:56:34
356
原创 今日学习总结
解这道 “快速求和” 题,首先要明确问题的核心是在给定数字字符串中插入最少加号使计算结果等于目标数字。考虑到需要尝试所有可能的加号插入组合,深度优先搜索(DFS)是合适的解题方法。并根据是否为最后一个字符决定是否增加加法次数。在主函数中读取输入的字符串和目标数字,初始化变量后调用。等于字符串长度时,说明已处理完整个字符串,此时检查。开始,通过循环将后续数字依次组合成新数。,说明找不到能得到目标数字的加法组合,将。进行搜索,该函数需携带当前处理位置。在递归过程中,从当前位置。处理剩余字符串,更新。
2025-02-18 22:07:49
235
原创 今日学习总结
这表明原问题的最优解(最少按键次数)依赖于子问题(较少次数操作到达中间楼层)的最优解。思考:为什么这道题可以用动态规划来写:因为例如,假设我们要计算经过。次操作到达的某些楼层推导而来。、题目使用动态规划的方法求解。按一次按钮可以到达楼层。将以前写的bfs/dfs。的情况,它可以由经过。,那么就可以根据经过。
2025-02-17 19:26:27
193
原创 今日学习总结
思考:使用并查集的相关知识,查找父节点,使用qsort函数进行比较,使用kruskal算法计算结果并输出。思考:这是一个约瑟夫环的问题,使用双重循环,外层循环遍历。),则继续向后查找,直到找到一个未被赋值的位置。内层循环用于找到数组中下一个可以填入的位置。1.完成了P2021 faebdc玩扑克。2.完成了B3603最短树问题。如果当前位置已经被赋值(表示当前要填入的数字。每次内层循环会尝试跳过。个位置后超出数组范围(将位置回绕到数组开头。
2025-02-12 16:54:14
218
原创 今日学习总结
思考:写代码时要注意时间复杂度,这样会TLE,可以用二分查找法减少时间复杂度。思考:建立单向链表,使用qsort降序排序。1.完成了P2242公路维修问题。2.完成了P10605下头论文。
2025-02-10 19:00:12
282
原创 今日学习总结
思考:这个题和第三周的符号匹配是同类型,主要是出入栈的操作与匹配更新的问题。思考:主要是要注意最后处理结果时应将ans-1。2.完成了P1241括号序列。1.完成了P1536村村通。
2025-02-07 19:04:22
169
原创 今日学习总结
主要是动态地处理数据,考察的是队列的基本使用。思考:主要是存入与查询操作函数的书写。1.完成了P1540机器翻译。2.完成了P3613寄包柜。
2025-02-06 19:11:31
229
原创 今日学习总结
思考:一开始有一点被题目迷惑了,知道队列只能在头部与尾部进行操作任然尝试用队列,但是无论怎么样都想不出解决数字前后移动的方法(也有可能是我自己没有想到),看了题解后知道使用链表。一开始使用了链表但是超时了,原因是每一次插入和删除都要遍历链表,导致时间复杂度较大。后来查阅资料使用了哈希表记录每一个节点的指针,将时间复杂度降低为O(1)。思考:很自然地想到了栈。将数字压入栈中,当遇到运算符时则处理栈中位置较上的两位数字。遇到@是则停止读入数据。较为关键的一步是如何将sum出栈。2.完成了P1160队列安排。
2025-02-04 17:20:55
226
原创 今日学习总结
思考:一开始并没有想到01背包问题与动态规划,没有弄清题目的意思认为是任意的两个数字相加,只是建立了简单的二重循环导致只通过了一个测试点。看了题解后才意识到这题可以用01背包问题的模板。思考:我的思路是将部分背包问题转化为01背包问题,即将每一部分的金币分为若干份单位为1的金币,然后转化为01背包问题求解。看了题解,但是只通过了一个测试点。1.完成了P1734最大约数和问题。2.尝试了P2240部分背包问题。
2025-02-03 21:10:11
238
原创 今日学习总结
思考:可以理解为01背包问题,不同的是将每一组数理解为一个背包,然后动态规划,要注意的是在每个循环前将sum重新初始化为0。1.完成了P2392。
2025-01-26 21:30:40
208
原创 今日学习总结
思考:这道题需要结合并查集与二分。并查集用来将村庄连接到相同的父节点,使用二分法可以减少查找的时间,提高判断效率。思考:这是一道并查集的入门题目,要求掌握并查集的相关知识点。1.完成了P3367【模板】并查集。2.完成了P1111修复公路。
2025-01-25 19:32:02
216
原创 今日学习总结
思考:这道题目是完全背包问题,只是改变了条件。相对于P1048,它增加的条件是可以无限采集一种药。这时需要在01背包问题上做出的改变是从自身开始比较而不是从上一个数。同样,此题的优化是使用一维数组。思考:这是一道纯01背包问题。最好的优化是减少它的空间复杂度。(因为我是先写了1616再写的这个题目,所以数据开的很大)今天彻底地学习了关于背包问题的解法,完成了两道与背包问题相关的题目。2.P1616疯狂地采药。
2025-01-24 22:09:33
191
原创 今日学习总结
思考:这道题目的关键在于找到一个点,从它开始向四周扩散,确定最大的正方形。在本体中,定义在右下角,就只要搜索左上,左,上这三个方向。同时,确定一个数组,用于作为存储某个点时的正方形的边长。思考:一开始想到的是dfs来解题,但是不知道如何删除同样的情况。在查看题解后,有种恍然大悟的感觉。总结:今天的题目都是通过搜索来解决,最大的难点在于找到从什么时候开始搜索的点,以及找到dp的正确表达式。思考:这道题很明显是使用搜索来完成,但是主要是要找到对应的式子完成搜索与比较。2.完成了P1387 最大正方形问题。
2025-01-21 19:15:01
479
原创 今日学习总结
思考:一开始写时想得很简单,就是普通的循环输入与比较。但是没想到数据过大时会超时,因此要使用差分数组。思考:第一时间没有思路,查看了题解与算法,了解了背包问题。1.完成了P1885 榨取kkksc03。2.完成了P2367 语文成绩。
2025-01-20 19:11:31
445
原创 今日学习总结
思考:一开始想用简单的循环来完成,但是遇到了问题就是op会输入1~2次,并不确定。数据类型需要使用longlong。问题就是只能对op输入一次的时候进行处理。使用队列:这里使用了ai,还没有完全理解。1.今天请假,只完成了一道题目。
2025-01-19 22:01:45
212
原创 今日学习总结
首先将整个棋盘都定义为1,然后开始遍历,将走过的点定义为0,然后根据条件,限定范围,统计数量。思考:最开始想到了使用栈,但是似乎有点难处理值的进出问题,因为栈遵循的是先进后出的原则。维护单调递减队列:如果队列尾部的元素小于等于当前元素。维护单调递增队列:如果队列尾部的元素大于等于当前元素。移除不在当前窗口的元素:如果队头元素的下标小于等于。移除不在当前窗口的元素:如果队头元素的下标小于等于。),则输出队头元素(即当前窗口的最大值)。),则输出队头元素(即当前窗口的最小值)。加入队尾,并记录其下标。
2025-01-16 17:02:04
334
原创 今日学习总结
代码可以正确运行,但是内存过大。优化方式是使用栈模拟递归,并使用字符串输入数组减小字节大小。思考:这是一道基础经典的dfs题目,此题的关键点在于如何优化代码减少运行的内存。思考:此题的关键点在于输出值的长度不超过4,以及对输入计算式的正确处理。思考:此题的关键在于如何正确处理出圈的人。2.完成了P1981表达式求值问题。3.完成了P1162填涂颜色问题。1.完成了P1996约瑟夫问题。
2025-01-15 17:09:01
232
原创 今日学习总结
思考:题目很明确地给出了栈的算法。在输入时,建立循环解决。但是在写函数时,将while函数写在了for循环外面,导致入栈与出栈只进行一次从而导致结果出错。在更正代码时,应该将while写在for循环的内部。思考:一道并不很难的dfs题目。在题目给定的条件中,T<=50;但如果T>50,由于时间复杂度较高,就会超时。因此学习了剪枝算法,减小了判定的范围,提高了效率。2.完成了P4387验证栈序列。3.完成了P2689东南西北。1.记忆了70个四级词汇。4.学习了剪枝优化的算法。
2025-01-14 16:58:15
196
原创 今日学习总结
思考:考虑从栈的方面入手,但卡在了如何输出最大值上。通过题解,调用max函数,并再建立一个栈用来输出最大值,实时更新,以确保输出的值为最大。思考:第一次写时,用了常规的双重循环,可以正确输出结果但是会超过时长。因此考虑学习了单调栈。思考:这是一道很简单的判断比较题目。3.完成了P1739表达式括号匹配问题。4.完成了P5788【模板】单调栈问题。1.第一个出现的括号必须是左括号;2.需要判断用户输入的值是否越界;2.完成了P1165日记分析问题。1.记忆了70个四级词汇。3.注意输出均为大写。
2025-01-13 17:21:36
161
原创 今日学习总结
思考:在解决问题前,并没有明确的思路;在看了题解后才懂了一些。在书写的过程中,对代码中的变量t的赋值不够准确导致只能完成一种情况,得分为10;后来经过修改,但仍然未达到AC,得分为90。思考:想到了使用dfs,但对于最终结果的输出不准确,没有考虑四面八方而只是考虑了上下左右。4.复习并自己重写了与深度搜索有关的P1294高手去散步问题。5.通过b站的相关网络课程,学习了栈的相关知识。3.完成了洛谷题单中的P1101单词方阵问题。2.完成了洛谷题单中的 P1190接水问题。5.预习了栈的相关之时。
2025-01-12 17:25:09
270
原创 今日学习总结
例如,把搜索空间想象成一个网格,从左上角的起始点找右下角的目标点。bfs会先搜索起始点周围一圈的点(距离为1),然后再搜索距离为2的圈,以此类推。一旦找到目标点,这个路径就是在这种逐步扩散的搜索方式下的最短距离,不用再去比较其他路径长度。当BFS第一次到达T时,所经过的边数就是从S到T的最短路径长度。因为bfs是按照距离分层搜索的,如果有更短的路径,那么在之前的层就会已经探索到目标节点了。原因:bfs是按照从起始节点开始的距离逐步向外搜索的。在每一层的搜索过程中,所有与当前层节点直接相邻的节点都被探索到。
2024-12-20 22:11:21
332
原创 今日学习总结
③主函数:输入任意5个正整数给数组a;调用sort()函数对数组进行排序;调用sort()函数对数组进行排序;调用merge()函数对数组a、b进行归并,并输出归并后返回的结果。②函数merge(a, m, b, n)对两个已是升序的数组a、b进行归并(a、b中分别有m、n个数据),归并后的结果仍然是升序的,并将归并结果返回给主调函数。编写一个主函数以及两个函数sort(a, n)和merge(a, m, b, n)。①函数sort(a, n)对数组a中的n个数据进行升序排序(排序方法不限)。
2024-12-19 22:05:48
194
原创 今日学习总结
完成了两道题目1.用牛顿迭代法求根。方程为,系数a,b,c,d的值由主函数输入,分别为1,2,3,4。求x在1附近的一个实根。求出根后由主函数输出。
2024-12-18 23:53:45
233
原创 今日学习总结
/ 初始化树的数组,所有树都存在,用1表示。// 将需要移除的树标记为0。3.做dfs深度实验题但全WA,正在努力理解中。2.完成函数模块阅读程序板块的实验。// 计算剩余树的数量。
2024-12-10 21:55:09
223
原创 今日学习总结
printf("在第%d个数组中找到%d,索引为%d\n",i+1,target,index);c.晚自习:阅读了群内有关dfs深度算法的文件,复习数学极限问题,学习了指针相关知识。printf("未在任意一个数组中找到%d\n",target);b.练习了关于全排列实现的问题,搜索了资料,同时学习了指针的相关知识。printf("请输入要查找的整数:");(然后晚上电脑不知道为什么坏了运行不了……a.了解了折半查找原理,练习了相关题目。
2024-12-09 21:50:38
806
原创 今日学习总结
1.数学:复习了数学中的第一章极限问题,重新写了一遍书本中的1-1,1-2练习版块,理解更正,并且复习了有关三角函数的问题以及其衍生公式,定义域与图像等;在专业方面,着重练习了数组,解决了2道数组问题。同时也学习了DFS深度算法中的知识,但理解的并不很透彻,任然需要继续阅读与理解。2.英语:随机记忆了四级词汇中的35个词汇,并复习拼写了从前记忆的87个词汇;2024.12.8 周日。
2024-12-08 21:45:02
174
空空如也
如何找到codeblocks根目录的位置?
2024-12-10
codeblocks缷载后重装了,这该怎么办?
2024-12-10
请问为什么无法输出呢
2024-12-09
为什么当n>10时输出结果为负
2024-11-26
为什么第23行if改成else if后输出结果就不对了呢
2024-11-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅