
区间DP
sunyutian1998
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Brackets POJ - 2955
http://poj.org/problem?id=2955 枚举出左右端点i j后 如果ij正好是一对括号 那就将dp[i][j]从dp[i+1][j-1]先转移过来 因为只有这种情况会产生更长的合法序列 然后就是区间DP的套路 枚举一下中点即可 #include <cstdio> #include <cstring> #include <algori...原创 2019-03-14 09:30:44 · 169 阅读 · 0 评论 -
Multiplication Puzzle POJ - 1651
http://poj.org/problem?id=1651 枚举出i j后 再枚举中点即可 显然最后剩下的两个数是第一个和最后一个 输出dp[1][n]即可 #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int maxn=1e...原创 2019-03-14 09:40:45 · 183 阅读 · 0 评论 -
QSC and Master HDU - 5900
http://acm.hdu.edu.cn/showproblem.php?pid=5900 区间dp 关键是怎么判断i与j能否变为相邻元素 即判断[i+1,j-1]内的元素能否两两配对消去 其实如果[i+1,j-1]全部可以消去 那dp数组中表示该区间的元素一定等于该区间数值之和一开始居然智障的判了一下[i,j]所有元素的gcd是否为1。。 #include <cs...原创 2019-03-02 16:06:19 · 183 阅读 · 0 评论 -
String painter HDU - 2476
http://acm.hdu.edu.cn/showproblem.php?pid=2476 先区间DP算出将空串变为B的代价 如果说B串每个字符都不相同 那代价肯定是串长度 能减小代价的地方就是abcba这样的串一层一层的涂 也就是说对两个相同的字符b[i] b[j] 先将[i,j]都涂成一个颜色 然后考虑涂[i+1,j-1] 所以区间DP时就从两个相同字符着手 算dp[i][j]时 就看...原创 2019-03-14 17:51:47 · 224 阅读 · 0 评论 -
You Are the One HDU - 4283
http://acm.hdu.edu.cn/showproblem.php?pid=4283 dp[i][j]代表只考虑i到j的最小怒气值 dp[i][j]从dp[i+1][j]转移过来 枚举i插在什么位置即可 #include <cstdio> #include <cstring> #include <algorithm> using namesp...原创 2019-03-15 09:45:34 · 216 阅读 · 0 评论 -
Halloween Costumes LightOJ - 1422
http://lightoj.com/login_main.php?url=volume_showproblem.php?problem=1422 dp[i][j]代表从i到j派对最少几套衣服 转移方程 dp[i][j]=min(dp[i][j],dp[i+1][k-1]+dp[k][j]) 注意不能写成 dp[i][j]=min(dp[i][j],dp[i+1][k-1]+dp[k+1][j...原创 2019-03-15 10:07:14 · 125 阅读 · 0 评论 -
Food Delivery ZOJ - 3469
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3469 按区间DP做 dp[i][j][0]代表i到j都处理完后停在左端i处dp[i][j][1]代表停在右端j处 转移方程如下 dp[i][j][0]=min(dp[i][j][0],dp[i+1][j][0]+(ary[i+1].pos-ary[i].pos)*(...原创 2019-03-15 15:29:47 · 205 阅读 · 0 评论 -
Removal Game Gym - 101196F
http://codeforces.com/gym/101196/attachments 区间dp裸题 因为是个环 要将数组对接一下 因为是个环 所以最后两个元素的位置是不一定的 暴力枚举一下最后两个元素的位置 并顺手删去即可 #include <cstdio> #include <cstring> #include <algorithm> usi...原创 2019-04-03 09:20:33 · 298 阅读 · 2 评论 -
Cake ZOJ - 3537
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3537 学会了求凸包 其实就是单调栈的思想 详见https://blog.youkuaiyun.com/codeswarrior/article/details/81327277 然后就是裸的凸多边形三角划分 区间DP即可 #include <bits/stdc++....原创 2019-04-18 09:57:36 · 219 阅读 · 0 评论