摘要: 这是一道动态规划题目,利用一维数列的最大子段和求多维的最大子段和。下列代码中的 psub()子函数就是求一维数列的动态规划。我们依次吧几行数据加到一行上相当于选中了好几行,然后再判断取几列能使其最大。自己的代码:View Code 1 #include<stdio.h> 2 3 int map[101][101]; 4 int sum; 5 int r,c; 6 7 void psub(int i) 8 { 9 int j,t=0;10 for(j=0;j!=c;++j)11 {12 if(t>0)t+=map[i][j];13 else t=map[i... 阅读全文
posted @ 2012-04-09 21:50 知行执行 阅读(161) 评论(0) 推荐(0) 编辑
摘要: NYOJ 61 传纸条是一个双线DP的题:从矩阵的左上角(1,1)点到矩阵的右下角(m,n)点找到两条不相交的路径使其值最大,题中是从(1,1)到(m,n)走一次,再从(m,n)到(1,1)走一次,我们可以等价变形一下,变为:同时从(1,1)走向(m,n)找两条路,且这两条路不相交,同时走!假设有两个人在走,一个人的坐标为(x1,y1),另一个人的坐标为(x2,y2),有题中规定只能向下或向右走,则可得状态转移方程:f(x1,y1,x2,y3) = max { f(x1-1,y1,x2-1,y2) ,f(x1-1,y1,x2,y-1), f(x1,y1-1,x2-1,y2), f(x1,y1- 阅读全文
posted @ 2012-04-09 17:10 知行执行 阅读(707) 评论(0) 推荐(0) 编辑