摘要:
51nod 1050 循环数组最大子段和 虽然是板子题,两种做法,我们先写一种,另一个咕咕。 因为是循环,所以分为两种,中间的和两边的,中间的直接dp求最大,两边的转化一下就是总的数字和减去中间的最小数字和。 #include <bits/stdc++.h> using namespace std; 阅读全文
posted @ 2024-09-09 10:37
sad_lin
阅读(11)
评论(0)
推荐(0)
摘要:
1202 子序列个数 设 \(dp[i]\) 为第i个数不同子序列个数,先不考虑重复的情况,每个数只有选不选,转移方程为 \(dp[i]=dp[i-1]\times 2\),但现在我们要求的是不同的子序列个数,因此要减去重复的子序列个数。对于选取了 \(a_i\) 的子序列,会出现重复的序列一定是以 阅读全文
posted @ 2024-09-09 07:57
sad_lin
阅读(13)
评论(0)
推荐(0)
摘要:
因为边权递增,按最小生成树的顺序 dp,设状态 \(dp[i]\) 为 \(i\) 点的最长路径长度,但是需要单调递增,所以考虑可以同时更新(先将原dp数组储存下来,再用新数组的值更新原 dp 数组),答案为 \(max(dp[i])\)。 #include<bits/stdc++.h> using 阅读全文
posted @ 2024-09-09 07:12
sad_lin
阅读(26)
评论(0)
推荐(0)
摘要:
3188 字符王国 建图,有环输出-1,无环按照拓扑序dp,设状态为 \(dp[i][j]\) 第 \(i\) 个点,\(j\) 的字符的出现的最大次数,最后遍历每个点找到最大答案。 #include<bits/stdc++.h> using namespace std; #define ll lo 阅读全文
posted @ 2024-09-09 06:29
sad_lin
阅读(8)
评论(0)
推荐(0)