- 博客(10)
- 问答 (3)
- 收藏
- 关注
原创 (自用)CSP-J-2021-1分糖果 题解
因此你需要写一个程序,依次输入 n, L, R,并输出你最多能获得多少作为你搬糖果的奖励的糖果数量。有一天你在幼儿园的后花园里发现无穷多颗糖果,你打算拿一些糖果回去分给幼儿园的小朋友们。由于你只是个平平无奇的幼儿园小朋友,所以你的体力有限,的结果是完全一样,所以全部遍历会多做很多无用且重复的操作。最容易想到的暴力破解思路就是遍历所有k的可能取值,每次让。也就是说,如果你拿了 k 块糖,那么你需要保证。,最后取最大的award。但是拿的太少不够分的,所以你。,记录下此时的k为能获得的奖励。
2024-12-16 14:25:44
1043
原创 (自用笔记)动态规划算法
动态规划算法本质上是一个递推关系的应用。规划过程中某一状态S[j]是从上一状态S[j-1]推出来的(中间的递推关系就叫转移方程?,并且一般规划到最后得到的状态就是所求的解(一般是某种最优状态?。通常在建立递推关系时,S[j]和S[j-1]之间转移方程并不是只有一种,往往不同的条件下有不同的关系,需要视情况而定在其中取一个。其中最优方案追踪是指,在得到某个最优解所在的状态之后,往往要回溯所有状态,来“追踪”并“还原”得到这个最优解的路程。以。
2024-10-13 12:20:55
792
原创 (自用)KMP算法中next数组的求解算法
看到站内一篇讲的很明白的文章,本着“能给别人讲明白=自己真正理解”的原则,试着写一篇讲解加深自己的理解next数组:对于字符串S中第j个元素,设其前面的元素组成的子串为S',则next[j]等于S中重合的前缀和后缀的最大长度。前缀:字符串中包含首字符且不包含尾字符的任意子串后缀:字符串中包含尾字符且不包含首字符的任意子串数学表述如下(这是元素下标以1为起始的情况,以0为起始的话都-1就可以了,后面我为了和看的原文一致可以得到next数组值的(除了表示子串和主串失配时子串指针应指向的位置)
2024-09-21 11:35:12
936
原创 【2020年408统考真题】三元组的最小距离
定义三元组(a,b,c)(a,b,c均为整数)的距离D=|a-b|+|b-c|+|c-a|。例如S1={-1,0,9},S2={-25,-10,10,11},S3={2,9,17,30,41},则最小距离为 2,相应的三元组为(9.10.9)。当a≤c≤b时,D2=b-a+b-c+c-a=2(b-a),是与c无关的常数;当c>b时,D3=b-a+c-b+c-a=2c-2a。c>b时D3=2(c-a)>2(b-a)=D2,即当c介于a,b之间时D取到极小值。③c的取值全落在b右侧,此时D=2b-2c。
2024-09-06 22:39:13
436
原创 记一下踩到关于const_iterator的一个小坑
在函数内部只能访问但不能修改成员变量。因此这里是把一个const_iterator的workers.begin赋值给iterator,但并没有一个重载的'='可以实现这种赋值,所以会爆这个错误。关于const_iterator可以参考这个,比较言简意赅。简单来说如果一个迭代器被声明为const_iterator,那么不可以通过它来修改容器内成员的内容(但是可以访问)出现这个错误的原因其实很简单,但是刚接触C++就不容易反应过来。问题在于这个迭代器w,它是一个iterator而不是一个。
2024-07-30 21:32:22
169
原创 公路村村通(浙大PTA数据结构与算法题目集-编程题7-10)
(扯句题外话,假设最开始没有这个算法的时候,我想大多数人拿到一个图要找最小生成树,可能想到的都是做“减法”,也就是怎么在众多的边当中删繁就简去掉冗余的权值大的边,只剩下权值小的边。其实直观上、感性上很好理解这个算法为什么得到的就是MST,每次连通一个点,而且每次还选的是边权最小的顶点,当所有顶点连通时必然是一个最小生成树。和Dijkstra一样,采用的是贪心策略。第一个点是这里的数组d[],虽然Prim算法看起来和Dijkstra有十分甚至九分相像,但这个d[]的作用差的很大,Prim的d[]存放的是到。
2024-06-06 23:28:41
1205
原创 哈利·波特的考试(浙大PTA数据结构与算法题目集-编程题7-8)
现在哈利·波特的手里有一本教材,里面列出了所有的变形魔咒和能变的动物。随后M行,每行给出了3个正整数,分别是两种动物的编号、以及它们之间变形需要的魔咒的长度(≤100),数字之间用空格分隔。很显然要用Dijkstra算法,分别算出以每个顶点为起点时该顶点到其他顶点的最短路径,找出其中的最大值(也就是需要的魔咒最长),比较这些最大值,选择其中最小的那个,输出起点和路径长。比较重要的信息:考察的是“从某个动物变成任意一种动物的能力”,那大概题目要求的算法也和则个有联系:即从某个“东西”出发,能够“到达”
2024-06-01 21:54:43
769
原创 堆中的路径(浙大PTA数据结构与算法题目集-编程题7-5)
每组测试第 1 行包含 2 个正整数 n 和 m (≤103),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间 [−104,104] 内的 n 个要被插入一个初始为空的小顶堆的整数。最后一行给出 m 个下标。找路径输出就比较简单了,由完全二叉树性质:父节点位序=孩子结点位序/2(向下取整),根据给出的要输出路径结点下标,每次除以2直到下标为1即可。对输入中给出的每个下标 i,在一行中输出从第 i 个结点到根结点的路径上的数据。随后对任意给定的下标 i,打印从第 i 个结点到根结点的路径。
2024-06-01 21:11:19
498
原创 两个有序链表序列的合并(浙大PTA数据结构与算法题目集-编程题7-51)
当tmp≤cur的时候,表明当前遍历过的结点都不大于新链表最大值,当tmp>cur,即pre
2024-05-11 16:22:09
653
原创 两个有序链表的交集(浙大PTA数据结构与算法题目集-编程题7-52)
在遍历链表的时候,如果两个链表的元素值相等,则将该结点链接到结果链表上,并将两个链表的指针同时向后后移动,若不相等,就把较小结点所在链表直接链接在较大的结点前面,组成新的链表,并从新链表中,原先在比较时较大的那个结点开始,跟原先较小元素所在链表剩下的结点继续求交集即可。输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。在一行中输出两个输入序列的交集序列,数字间用空格分开,结尾不能有多余空格;及之前的元素(除那些已经在交集中的元素外)必然不属于A∩B。
2024-05-09 14:19:37
303
空空如也
浙江大学PTA数据结构&算法7-11关键活动,最后一个测试点总是通不过
2024-06-11
QCC3071如何实现ANC降噪
2023-01-11
在Kotlin中调用Hutool的CronUtil工具类设置定时任务时遇到了几个问题
2022-07-29
ffmpeg如何在不重新编码情况下做到精准切割视频?
2022-04-11
在pip安装TensorFlow的时候报错,出现了图上这样的问题
2021-12-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人