随笔分类 -  动态规划

摘要:题目链接:https://www.luogu.org/problemnew/show/P3609 看着标签什么记搜什么暴力点进来,读完题第一直觉DP? 还真是个$DP$。 题目所描述的状态十分明显,第 $i$ 轮,变换 $j$ 次,当前FJ手势 ($x,y,z$) 那我们不妨直接令$f[i][j][ 阅读全文
posted @ 2019-06-12 21:35 Misaka_Azusa 阅读(256) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.org/problemnew/show/P1879 状压DP。 设dp[i][j]表示第i行,状态为j的方案数 初始dp[0][0] = 1 这样一共12行12列,最多1 include include include define ll long lo 阅读全文
posted @ 2018-11-07 09:12 Misaka_Azusa 阅读(179) 评论(0) 推荐(0)
摘要:考试题。 是个DP。 50分可以通过子集枚举+线段覆盖(贪心)完成。 考试没时间写了一个子集枚举30分。 include include include include include using namespace std; const int maxn = 1e6 + 10; inline in 阅读全文
posted @ 2018-11-05 19:42 Misaka_Azusa 阅读(281) 评论(0) 推荐(1)
摘要:题目链接:https://www.luogu.org/problemnew/show/P1850 难的不在状态上,难在转移方程。 (话说方程写错居然还有84分= =) include include include include define ll long long using namespac 阅读全文
posted @ 2018-11-05 14:24 Misaka_Azusa 阅读(171) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.org/problemnew/show/P3953 题外话:感觉2017年神题好多。。这还不是最神的一道,真在考场上我也就写个最短路计数暴力了。现在在大佬们的帮助下算是理解了些。 方便起见,均设路径为 u— v 权值为w 首先,看到这个题,我们想到的是最 阅读全文
posted @ 2018-10-19 21:27 Misaka_Azusa 阅读(123) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.org/problemnew/show/P1373 想不出来状态 看了一眼题解状态明白了 dp[i][j][h][1/0] 表示在i,j点差值为h是小A还是uim移动的 include include include include define ll 阅读全文
posted @ 2018-10-18 14:22 Misaka_Azusa 阅读(112) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.org/problemnew/show/P1156 设$dp[i][j]$表示前i堆到达高度j时的所活最长时间 那么一旦到当前状态能到达满足的时间和高度就输出这个垃圾来的时间 转移时先满足可以到达的时间, 再有转移高度:$dp[i+1][j+a[i+1] 阅读全文
posted @ 2018-10-18 09:36 Misaka_Azusa 阅读(146) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3177 $describe$: 有一个山洞,山洞的容积最大为$v$。现在你有$n$个物品,这些物品在往山洞里搬和放在山洞所需要占用山洞的体积是两个不同的值$B$,$A$。你可以理解为在搬运这个物品进洞时需 阅读全文
posted @ 2018-10-16 08:26 Misaka_Azusa 阅读(186) 评论(0) 推荐(0)
摘要:总结:stl真好用 include include include include using namespace std; const int maxn = 100100; int a[maxn], n, lis[maxn], len; int main() { ios::sync_with_st 阅读全文
posted @ 2018-10-15 20:11 Misaka_Azusa 阅读(225) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.org/problemnew/show/P4017 DAG + DP include include include include include using namespace std; const int maxn = 500010; const 阅读全文
posted @ 2018-09-14 21:00 Misaka_Azusa 阅读(140) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.org/problemnew/show/P1137 topsort + DP include include include include include using namespace std; const int maxn = 100001; st 阅读全文
posted @ 2018-06-22 11:34 Misaka_Azusa 阅读(163) 评论(0) 推荐(0)
摘要:题目链接: "https://www.luogu.org/problemnew/show/P1040" 今天考试考了一个区间DP...没错就是这个... 太蒟了真是连区间DP都不会...看了看题解也看不懂,于是请了某獴dalao给补充了一下。 在这里把自己的理解写下来,算是给一些像我一样不会区间DP 阅读全文
posted @ 2018-06-20 14:53 Misaka_Azusa 阅读(138) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.org/problemnew/show/P1455 一句话题目做法:并查集合并+01背包 启示:要每次再find一遍。路径压缩会快。因为合并的时候如果是1连3,3连2,4连2,最后也不能保证一步就能连到fa上去。 结果会是fa[2] = fa[3] = 阅读全文
posted @ 2018-03-30 19:53 Misaka_Azusa 阅读(181) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.org/problemnew/show/P1004 标准的DP,不明白为什么有普及+提高的难度 四维DP[i][j][k][l] 表示第一遍走到i,j格子,第二遍走到k,l格子 状态转移方程:max(dp[i-1][j][k-1][l],dp[i-1][ 阅读全文
posted @ 2018-03-07 10:15 Misaka_Azusa 阅读(216) 评论(0) 推荐(0)
摘要:今天讲的全是dp... 不多废话,先看一道经典的模板LIS(最长不下降子序列) 一.LIS 给定一个长度为N的数列,求最长上升子序列 例:1 7 2 8 3 4 答案:1 2 3 4 代码: 二.背包问题 背包就不多讲了,背包九讲里面非常明白了,也是很基础的dp N个物品,每个物品有价值和体积两个属 阅读全文
posted @ 2018-02-26 20:51 Misaka_Azusa 阅读(175) 评论(0) 推荐(0)

Live2D