摘要:
原题链接 导入 1.对于一个给定的序列,最后一个加进来的元素不是最左端就是最右端,如果是最左端,那么代表去掉最左端的序列中最后一个加进来的元素比最左端小,最右端同理。 2.对于一个给定的序列,可能的排序结果无非两类,一类是以最左端的元素结尾的,一类是以最右端的元素结尾的。因此设\(sum[i][j] 阅读全文
posted @ 2023-12-06 21:05
纯粹的
阅读(13)
评论(0)
推荐(0)
摘要:
原题链接 点拨: 运用动态规划的思路 对于一给定的字符串,其未来和现在有什么关系? 假如其过去已知,其现在和过去有什么? 细节 当两端相等时,继承不一定比从中间合起来要小 代码 #include<bits/stdc++.h> using namespace std; int main() { int 阅读全文
posted @ 2023-12-06 19:30
纯粹的
阅读(73)
评论(0)
推荐(0)
摘要:
原题链接 导论 1.数列末尾插入一个没有在数列中出现过的数,然后对数列中的每个数加上x的若干倍数(其中的x对于每个数而言均相同),使得数列中的所有数均相等 2.由导论1可以推出,x一定是 \(|a[i]-a[j]|(1\leq i,j\leq n)\)的最大公约数 3.导论2的时间复杂度显然太高了, 阅读全文
posted @ 2023-12-06 15:41
纯粹的
阅读(58)
评论(0)
推荐(0)
摘要:
原题链接 1.审题 1.使得转账后 B 收到 100 元。 2.互相转账 3. z%的手续费(z<100) 2.思路 1.dijkstra算法(很讨厌这种算法名字):把已探访过的点的下一个点中“ ‘还没探访过的点’的更新”放进堆里,堆里弹出未探访点的第一个更新便是该点的最值 2.准备工作,把所有的边 阅读全文
posted @ 2023-12-06 14:51
纯粹的
阅读(70)
评论(0)
推荐(0)
摘要:
不能用dijkstra算法 的原因(个人拙见): 题解 1.思想导论 对于没有负环的图中能到达的任意一个节点,从1出发的最短路径,途中经过的点至少有2个,最多为n个(包括两端)。 设经过的点数为路径的长度 2.思想落实 设cnt[i]为到达i的最短路径的最大长度,每更新一次长度,就更新一次cnt[i 阅读全文
posted @ 2023-12-06 11:40
纯粹的
阅读(22)
评论(0)
推荐(0)
摘要:
原题链接 不知道这个思想叫什么,应该叫结果思想 导论 如果存在一个最长的字符串,我又没有可能把他消掉? 答案是,只要其他字符的长度大于等于最长字符串的长度,就一定能把他消掉。 所以我们不考虑字符串是怎么消除的,直接看结果。 原因解释如下 1.该最长字符串一定和其他字符相连,则消除操作显然。 2.如果 阅读全文
posted @ 2023-12-06 10:21
纯粹的
阅读(93)
评论(1)
推荐(1)

浙公网安备 33010602011771号