dp
YOYCod
君子不器,成己达人
展开
-
hdu~1494 (dp)
http://acm.hdu.edu.cn/showproblem.php?pid=1494 这题是道简单dp,输入跑道段数l,和圈数n, 接着是每段跑道不用加速器时间a[],再接着是用了加速器所需时间b[]。 这里可以看成是n*l段长度的路程,转移量为能量槽数,最大为14. 具体看代码: 具体看代码具体看代码:原创 2014-11-18 19:26:30 · 510 阅读 · 0 评论 -
hdu~1003(简单dp)
Max Sum 求最大字段的和。 用dp[i]存的是前i个数中,所选连续数的最优解(即和最大) dp[i]最大的数的位置为终止位置 从尾部向前遍历,最前面的非负数为开始位置 例如:3 -4 2 -1 3 对应的dp为 3 -1 2 1 5, 5所在位置为终止位置,2 所在位置为开始位置 #include #define MAX 100000 int原创 2015-04-14 17:21:47 · 519 阅读 · 0 评论 -
hdu~1422(简单dp)
重温世界杯 用ans[i]存 生活费和话费之差 类似求最大区间和 注意路线是一个环。 #include #define MAX 100000 int ans[2*MAX+5]; int dp[2*MAX+5]; int main() { int n; while(scanf("%d",&n)!=EOF) { int x,y; f原创 2015-04-14 17:34:54 · 649 阅读 · 0 评论 -
hdu~2217(简单dp)
visit 题意:在x轴上,出发点在0的位置,给你一些其他点的位置,求在规定时间内能遍历最多的点的个数。 其实个人觉得不会dp的人也能做,说是dp也算不上。 以0为起点,负半轴为左边。 1.先开两个数组l[],r[]存左右两边各点到0的距离。 2.再开两个数组lm[],rm[]存以上述各点为拐点能遍历的最多点的个数。 具体的还是看代码好理解: #include #inclu原创 2015-04-16 10:26:19 · 584 阅读 · 0 评论 -
最长公共子序列
求解: 引进一个二维数组c[][],用c[i][j]记录X[i]与Y[j] 的LCS 的长度,b[i][j]记录c[i][j]是通过哪一个子问题的值求得的,以决定搜索的方向。 我们是自底向上进行递推计算,那么在计算c[i,j]之前,c[i-1][j-1],c[i-1][j]与c[i][j-1]均已计算出来。此时我们根据X[i] = Y[j]还是X[i] != Y[j],就可以计算出转载 2014-08-21 10:02:57 · 1083 阅读 · 0 评论