dp
文章平均质量分 69
Visioner7
这个作者很懒,什么都没留下…
展开
-
hdu 1003
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1003题目的大意就是求一个数列中最大的子序列的和,并记录子序列开始与结束的元素在原数列中的位置,最后一起输出其实就是一个最大子序列问题题目并不难,但是可以说是入门dp的开始。下面附上代码:#include #include using namespace std;int arr[100原创 2013-11-29 23:26:23 · 529 阅读 · 0 评论 -
hdu 1081
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1081这道题是前文提到的Max Sum的强化版:http://blog.csdn.net/custcoder/article/details/17033323给一个二维数组,然后用一个任意大小的矩形框去框二维数组的元素,使得矩形内元素之和最大在DP中,就是经典的最大子矩阵问题.其实可以将二维原创 2013-11-30 01:42:29 · 497 阅读 · 0 评论 -
hdu 2159
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1159题意很简单,即求两个字符串的最长公共子序列的长度利用一个二维数组dp[i][j]储存,第一个字符串前I个字符与第二个字符串前j个字符的公共子串长度,一种回溯的思想。状态转移方程:if(str[i-1]!=str[j-1])dp[i][j]=Max(dp[i-1][j],dp[i][原创 2013-11-30 03:40:38 · 494 阅读 · 0 评论 -
hdu 2844 Coins
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2844题目的意思其实是求硬币的组合方案,使得硬币的价值总额不超过m一个很典型多重背包问题这个题目如果用0-1背包来做,是会超时的,所以用多重背包,其实差别很小,只不过不能用逆序的方法,要采取顺序,理由是并不清楚前一次可以取多少枚硬币同时采用2进制的处理方法。代码如下:#inclu原创 2013-12-08 01:12:45 · 467 阅读 · 0 评论