DP动态规划
文章平均质量分 67
小冷在努力
这个作者很懒,什么都没留下…
展开
-
HDU 1513 Palindrome DP
这道题是说给你一个字符串,让你添加尽量少的字符来使这个字符为回文串。这道题的子问题是从这个字符串的第i+1个字符到第j个字符添加尽量少的字符数为f(i+1,j),第i个字符到第j-1个字符添加尽量少的字符数为f(i,j-1),则第i个字符到第j个字符添加尽量少的字符数为f(i,j)可得到表达式为如果S[i]==S[j],f(i,j)=f(i+1,j-1),否则:f(i,j)=min(f(i+1,j原创 2015-04-10 15:24:14 · 317 阅读 · 0 评论 -
HDU OJ 1423Greatest Common Increasing Subsequence 最长公共上升子序列
这道题就是一道最长公共上升子序列的入门题,说一下我的代码思路:len[x]表示当序列a的前i个序列跟序列b的前x个序列的 最长公共上升子序列,这里用到了滚动数组。就这样 代码如下: #include #include #include using namespace std; const int inf = 510; int a[inf],b[inf],len[inf],n,m; int原创 2015-04-23 00:40:45 · 367 阅读 · 0 评论 -
hdu oj 5000 Clone DP
看了一下别人的代码,这是一道01背包的变形。与01背包不同处是一个的值是确定的,一个的值是变化着的。 这道题是说这里有克隆人,克隆人有N个属性,如果存在一个克隆人的各个属性比另一个克隆人的相对应的属性都大,则另一个克隆人就要被杀死。现在给你N个属性值,求最多能有多少个克隆人存在。当其中的一个克隆人的一个属性为最大值,其他属性为0,为了保证该克隆人能继续存在,他的最大属性减小,另外的属性应该增大。原创 2015-04-14 18:56:05 · 415 阅读 · 0 评论