随笔分类 - 动规
摘要:题目:http://poj.org/problem?id=3046 就是多重集组合数(分组背包优化); 从式子角度考虑:(干脆看这篇博客) https://blog.csdn.net/viphong/article/details/48110525 从意义的角度来考虑: 当 j<=a[i] 时,f[
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P3004 似乎有点博弈的意思,但其实是DP; f[i][j] 表示 i~j 的最优结果,就可以进行转移; 注意两个循环的顺序,要先算出 i+1 ,但要用之前的 j-1 ,所以一个倒序一个正序。 代码如下:
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P4141 竟然是容斥:不选 i 物品只需减去选了 i 物品的方案; 范围原来是2*10^3而不是2*103啊... 代码如下:
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P2943 一眼看去就有个 n^2 的做法:f[i] = min{ f[j] + num( i - j ) * num( i - j ) } , 1 <= j < i; 但仔细想想这个做法,发现那个num数组很不好处理
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4806 看到这题首先会想到状压什么乱七八糟的,然而很难做; 其实,因为求的是方案数,所以并不需要关注炮摆放的位置,而只需要关注数量; f[i][j][k] 表示第 i 行及以前共有 j 个有 0
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1499 朴素DP方程很好想,以右移为例,就是 f[i][x][y]=max(f[i][x][y],f[i-1][x][j]+y-j) ; 每一行/列会用到一些相同的状态更新,所以可以用单调队列优
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1566 一眼看上去很懵... 但是答案可以转化成有两个人在同时取珠子,他们取出来一样的方案数; f[i][j][k]表示一共取了 i 个珠子,第一个人取了 j 个珠子,第二个人取了 k 个珠子时
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1046 倒序求最长下降子序列,则得到了每个点开始的最长上升子序列; 然后贪心输出即可。 代码如下:
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1296 对于不同木板之间,最终统计答案时做一个分组背包即可; 而要进行分组背包,就需要知道每个木板被刷几次的最大正确格子数; 所以对于每个木板分别DP,状态 f[i][j] 定义为前 i 个格子
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1044 咳咳...终于A了... 居然没注意到正着找pos是n方会TLE...所以要倒着找pos; 二分还写错了,改了半天... 小心前缀和取模后相减变成负数!!!!!!!!! 代码如下:
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1207 这题和求LIS有点像,打这一只鼹鼠一定可以从打上一只鼹鼠转移过来; 所以不用考虑机器人移动啦、格子边界啦等等问题; 注意状态不能是“打前i只鼹鼠”而必须是“打第i只鼹鼠及以前”,这样每个
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1084 水题...分类讨论一下即可。 代码如下:
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2748 怎么会有这样的省选题... 代码如下:
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4557 见这位的博客:https://www.cnblogs.com/Narh/p/9140326.html 代码如下:
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1017 好难想的状态啊!f[i][j][k]表示i号物品有j个向上贡献,一共花了k钱的最大力量; g[i][j]用在子树中,表示前i个子树花j钱的最大值; 调了半上午,终于发现原来是少看了一个范
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1925 真是精妙的递推式。。。好难想到啊; 详见这位的博客:https://www.cnblogs.com/Narh/p/9135070.html 代码如下:
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2431 考虑新加入一个数i,根据放的位置不同,可以产生0~i-1个新逆序对; 所以f[i][j]可由f[i-1][j-k]相加得到,其中0<=k<=i-1&&k<=j; 再优化一下,每次前缀和减
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3191 不用在意每个人的编号,只需看他们相对于庄家的位置即可; 所以设计状态f[i][j]为还剩i人时j人获胜的概率,并且默认庄家是1号; 这样就可以转移了,每次被淘汰的人是tmp,淘汰后所有人
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1003 DP好题; 直接找一个时间段的最短路,并用它来预处理出每个时间段的最小花费; f[i]代表一条路走到时间的花费,所以转移要加上K。 枚举所有路线的TLE代码: #include<iost
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P1466 水题,注意开long long; 代码如下:
阅读全文

浙公网安备 33010602011771号