ACM DP问题
BYR_jiandong
这个作者很懒,什么都没留下…
展开
-
poj 1260
#include #include using namespace std; //***************************常量定义*************************** //**************************题目变量**************************** //全局变量全部初始化为0 int a[110]; int p[110];原创 2014-10-30 10:37:52 · 572 阅读 · 0 评论 -
POJ 1837
转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299341345 提示:动态规划,01背包 初看此题第一个冲动就是穷举。。。。不过再细想肯定行不通= =O(20^20)等着超时吧。。。 我也是看了前辈的意见才联想到01背包,用动态规划来解 题目大意: 有一个天平,天平左右两边各有若干个钩子,总转载 2014-10-30 14:02:12 · 482 阅读 · 0 评论 -
POJ1160-典型DP
题意:用数轴描述一条高速公路,有V个村庄,每一个村庄坐落在数轴的某个点上,需要选择P个村庄在其中建立邮局,要求每个村庄到最近邮局的距离和最小。 分析:典型的DP: 1、考虑在V个村庄中只建立一个邮局的情况,显然可以知道,将邮局建立在中间的那个村庄即可。也就是在a到b间建立 一个邮局,若使消耗最小,则应该将邮局建立在(a+b)/2这个村庄上。 2、下面考虑建立多转载 2014-10-20 09:24:34 · 879 阅读 · 0 评论 -
动态规划入门(四)DP 基本思想与实现
POJ1160, post office。动态规划的经典题目。呃,又是经典题目,DP部分的经典题目怎就这么多。木有办法,事实就这样。 求:在村庄内建邮局,要使村庄到邮局的距离和最小。 设有m个村庄,分别为 V1 V2 V3 … Vm, 要建n个邮局,分别为P1 P2 P3 … Pn。 在DP的问题中,经常有从m个物体中选n个物体的情况,本题显然也属于这种情况。一般可以这样考虑:假转载 2014-10-20 09:27:21 · 863 阅读 · 0 评论 -
poj 1458 输出最长子序列长度和具体的最长子序列
//解释: 因为每个c[i][j]的项只依赖于表c中的其他三项:c[i-1][j-1],c[i-1][j],c[i][j-1]; 所以,可以引入标志数组b[i][j]来标志计算c[i][j]时所选择的项。原创 2014-10-21 09:57:18 · 577 阅读 · 0 评论 -
POJ 1159滚动数组
题意: 给你一串字符串,让你求最少加入几个字符,才能使得这个字符串是个回文串。 做法: 设a[i]是这个字符串,b[i]是这个字符串的逆序串。 那么a[i],b[i]的最长公共子序列就是所求的字符串里拥有的最大的回文串。 然后用总串长减去最大的回文串长度即为所求。 求最长公共子序列的公式为: dp[i][j]=max(dp[i-1] [j],dp[i][j转载 2014-10-22 12:59:03 · 524 阅读 · 0 评论 -
POJ 1159
#include using namespace std; //***************************常量定义*************************** const int MAX=5500; const int MIN=3; //**************************题目变量**************************** //全局变量全部初始原创 2014-10-22 11:24:05 · 627 阅读 · 0 评论