#include <stdio.h> int Maxvalue(int [][1000],int); int maxi(int ,int); int main() { int n,a[1000][1000]={0}; int i,j; scanf("%d",&n); for(i=0;i<n;i++) for(j=0;j<n;j++) scanf("%d",&a[i][j]); printf("%d\n",Maxvalue(a,n)); return 0; } int Maxvalue(int b[][1000],int m) { int i,j; for(i=1;i<m;i++) b[i][0]+=b[i-1][0]; for(j=1;j<m;j++) b[0][j]+=b[0][j-1]; for(i=1;i<m;i++) for(j=1;j<m;j++) b[i][j]+=maxi(b[i-1][j],b[i][j-1]); return b[i-1][j-1]; } int maxi(int a,int b) { return a>b?a:b; }
动态规划DP
最新推荐文章于 2019-09-16 17:19:25 发布