随笔分类 - 动态规划
摘要:题目链接 CF1354E Graph Coloring (*2100) 解题思路 发现这个东西就是类似于二分图染色的东西。 因为 \(2\) 只能和 \(1,3\) 链接。其余种类的点都不能连接。 不妨把 \(1,3\) 都看成同一个点放到最后处理。 那么我们就相当于是要找到一种方案使得选择每个联通
阅读全文
摘要:题目链接 CF1433F Zero Remainder Sum (*2100) 解题思路 简单 dp,只是状态有点多。 首先我们根据题目里的定义,可以构造 \(dp1_{i,j,a,b}\) 表示考虑到第 \(i\) 行前 \(j\) 列当前所选数之和模 \(k\) 为 \(a\) 且此时选了 \(
阅读全文
摘要:题目链接 CF1839E Decreasing Game(*2400) 解题思路 首先我们可以发现一个性质,那就是我们如果可以将这个序列拆分成两组,使得这两组数字的和相同,则我们此时扮演后手一定可以获胜,具体的,若先手取了其中一组数字中的一个,那我们只需要取另一组数字中的任意一个目前不为 \(0\)
阅读全文
摘要:vp 到的。 题目链接 CF1183E Subsequences (eazy version) CF1183H Subsequences (hard version) 解题思路 考虑动态规划。 设 \(dp_{i,j}\) 表示考虑到字符串前 \(i\) 个字符中选取的字符长度为 \(j\) 的不同
阅读全文
摘要:duel 到的。 题目链接 CF1513C Add One (luogu) CF1513C Add One (codeforces) 解题思路 我们发现,初始数列中的每个数字变为 \(10\) 必定只需要至多 \(10\) 次,于是我们可以直接预处理出 \(10\) 这个数字经过 \(i\) 次变化
阅读全文
摘要:代码恢复训练 2024.7.2. 链接 (codeforces) 链接 (luogu) 一道很基础的区间 dp。 只讲状态定义,\(dp_{i,j}\) 表示 \(i \sim j\) 区间需要的最少消除次数。 时间复杂度 \(O(n^2)\)。 点击查看代码 /* Tips: 你数组开小了吗? 你
阅读全文
摘要:题目链接 CF1987D World is Mine 提示 Alice 的策略是固定的。 考虑用动态规划解决问题。 解题思路 我们发现,Alice 的最优策略一定是每次取当前能取的美味值最小的蛋糕,而 Bob 的策略难以使用贪心维护。 于是我们考虑用动态规划来考虑 Bob 的策略。 我们发现,Bob
阅读全文
摘要:代码恢复训练 2024.6.15(补) 链接 (luogu) 链接 (atcoder) abc 最水的 G 了吧。 你发现,你最后肯定全在在同一个点上不动,而且你一定可以在 \(n \times m\) 回合内走到这个点,因此我们直接 \(dp_{i,x,y}\) 表示走 \(i\) 步到 \((x
阅读全文
摘要:链接 没啥好说的,直接看代码吧。 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? 打 cf 不要用 umap!!! 记住,rating 是身外之物。 该冲正解时冲正解! Problem: 算法: 思路: */
阅读全文
摘要:好题。 直接上代码吧。 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? 打 cf 不要用 umap!!! 记住,rating 是身外之物。 该冲正解时冲正解! Problem: 算法: 思路: */ #incl
阅读全文
摘要:大家一起来做下这个典题。 链接(at) 链接(luogu) 我们很容易可以想到处理前后缀的最长上升子序列的长度,然后容易 \(O(n \log_2 n)\) 预处理。 做完了。 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不
阅读全文
该文被密码保护。
摘要:链接 板题。 三个定义: \(dp_i\) 表示以 \(i\) 为根节点时,其子节点深度的和; \(siz_i\) 表示以 \(i\) 为根节点时,其子树的大小; \(dep_i\) 表示以 \(1\) 为根节点时,所有节点的深度。 参考代码: 点击查看代码 /* Tips: 你数组开小了吗? 你M
阅读全文
摘要:链接 参考此题解 比较有意思的期望 dp,记得多特判 0 的情况。 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? */ #include<bits/stdc++.h> using namespace std;
阅读全文
摘要:题目链接 最典的状压 dp 了。 直接枚举每个状态然后用 01 背包的方式做即可。 时间复杂度 \(O(n2^m)\)。 代码: 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? */ #include<bits
阅读全文

浙公网安备 33010602011771号