NYOJ_171_聪明的kk
这是个二维的矩阵,从原点到下一个点只有两个方向,从上到下、从左到右遍历不会产生冲突
#include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #include<cstring> #include<string> using namespace std; int dp[30][30];//当前的位置最大和是多少 int main() { int n,m,i,j; while(~scanf("%d%d",&n,&m)) { memset(dp,0,sizeof(dp)); for(i=1;i<=n;++i) for(j=1;j<=m;j++) { scanf("%d",&dp[i][j]); dp[i][j]+=dp[i][j-1]>dp[i-1][j]?dp[i][j-1]:dp[i-1][j]; } printf("%d\n",dp[n][m]); } return 0; }