
基础DP
hill_555
这个作者很懒,什么都没留下…
展开
-
hrbust1818 石子合并问题--直线版 (经典区间DP)
求解的大问题是在区间[1, n]内合并石子的最优值,石子分成两个区间[1,k][k+1,n]。不断地将大区间分成小区间。 设dpmax[i][j]表示i堆石子到j堆石子合并得到的最大分数,dpmin[i][j]表示i堆石子到j堆石子合并得到的大小分数,num[i][j]表示i堆石子到j堆石子的总数 状态转移方程: dpmax[i][j]=max{dp[i][k]+dp[k+1][j]+num原创 2013-08-15 00:38:00 · 906 阅读 · 0 评论 -
hrbust1828 剪纸条(DP)
dp[i]表示从第1个字符到第i个字符间有多少左右对称的回文串。预处理出原串中的对称的子串。 如果满足i到j是回文串,dp[i] = min(dp[i], dp[j]+1);最后输出dp[n]-1就是答案了。 居然过了。。感觉写的不靠谱。。 #include #include #include using namespace std; #define clr(x) memset(x,0,siz原创 2013-08-15 00:31:58 · 567 阅读 · 0 评论