有一个小游戏,在一个n*m的矩形网格里,每个网格内都有一定数量的游戏币,我们可以控制机器人从左上角出发,到右下角结束,并且会拾取沿途经过的游戏币,请计算机器人做多能捡拾多少游戏币。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int dp[100][100],num[100][100],i,j,n,m;
int main()
{
cin>>n>>m;
memset(dp,0,sizeof(dp));
memset(num,0,sizeof(num));
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
cin>>num[i][j];
dp[i][j]=max(dp[i-1][j],dp[i][j-1])+num[i][j];
}
}
cout<<dp[n][m]<<endl;
return 0;
}