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;

}

 

你可能感兴趣的:(OJ)