http://uva.onlinejudge.org/external/105/10559.html 非常好的dp题,据说黑书有解释。 想了很长时间,知道这个是区间dp,却不知道还要维护什么,于是只好找一下题解了。别人给这题写的题解还算清晰,主要思路是当前判断到哪个颜色作为最后处理的颜色,这个颜.....
分类:
其他好文 时间:
2014-09-16 18:44:50
阅读次数:
297
Two Rabbits
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)
Total Submission(s): 921 Accepted Submission(s): 483
Problem Description
Long long ago, ...
分类:
其他好文 时间:
2014-09-06 14:53:03
阅读次数:
297
区间动态规划是从区间的角度来考虑问题的。对于每段区间,它的最优值是由几段更小的区间的最优值得到,这算是分治思想的一种应用吧。就拿http://acm.fafu.edu.cn/problem.php?id=1502合并石子这一题来说。要求得区间1-->n石子合并的最小花费设dp[1][n] 为合并区间...
分类:
其他好文 时间:
2014-09-05 12:54:41
阅读次数:
176
因为,这两题有着似乎一样的解法所以将其放在一起总结比较,以达到更好的区分二者的区别所在。
一、区间DP
uva的Cutting Sticks是一道典型的模板题。
题目描述:
有一根长度为l的木棍,木棍上面有m个切割点,每一次切割都要付出当前木棍长度的代价,问怎样切割有最小代价。
区间DP的定义:
区间动态规划问题一般都是考虑,对于每段区间,他们的最优...
分类:
其他好文 时间:
2014-09-01 12:37:43
阅读次数:
298
题目大概都是这样的:
设有N堆沙子排成一排,其编号为1,2,3,…,N(N
dp的方程很显然:
区间DP dp[i][j]=min(dp[i][k]+dp[k+1][j]+cost[i][j]) i
复杂度 N^3
这同时也是一个四边形优化DP的标准形式,对于i到j段的最优值s[i][j]满足: s[i][j-1]
可以减小枚举范围,复杂度N^2...
分类:
其他好文 时间:
2014-08-27 13:04:07
阅读次数:
272
题目大意:给你一串数字让你判断经过若干次合并,使得这个数字串变成回文串的最小成本是多少。第一行是数字串,第二行是合并连续i个数字的成本是多少。
解题思路:区间dp,可以进行记忆化搜索,如果左边比右边和大那么右边一定是小了,右边比左边大那么左边一定小了。因为保证有解。具体不太好说,直接看代码吧。
Another OCD Patient
Time Limit: 2000/1000 MS ...
分类:
其他好文 时间:
2014-08-26 21:29:36
阅读次数:
380
和环形石子合并一个德行的一道题,区间DP唯一的区别在于计分方式,转移方程也有所不同dp[i][j]表示合并i到j和能得到的最大的能量dp[i][j] = max{f[i]*r[k]*r[j]+dp[i][k]+dp[k+1][j]|i 2 #include 3 #include 4 #inclu.....
分类:
其他好文 时间:
2014-08-24 23:49:13
阅读次数:
214
1 //Accepted 176 KB 47 ms 2 //感谢大神们为我们这群渣渣铺平前进的道路!! 3 //用scanf("%s",s)!=EOF WA到死 4 #include 5 #include 6 #include 7 using namespace ...
分类:
其他好文 时间:
2014-08-24 23:45:43
阅读次数:
269
和1055沙子合并类似环形石子合并,还是区间DP这里需要求两个,一个是最小总代价,一个是最大总代价,两个只需要把min和max改一下其他一模一样。以最小代价为例:dp[i][j]表示合并从i到j的石子所需要的最小总代价,这里和线段石子合并不同的是,可以循环,说白了就是j可以大于n,这种环形的东西,一...
分类:
其他好文 时间:
2014-08-24 23:45:33
阅读次数:
274