#include<iostream> using namespace std;
int map[][];
int d[][];
int N, M; int dp(int i, int j)
{
if(d[i][j]!=)
return d[i][j];
if(i==N-&&j==M-)
return d[i][j]=map[i][j];
if(i==N-&&j!=M-)
return d[i][j]=map[i][j] + dp(i,j+);
if(j==M-&&i!=N-)
return d[i][j]=map[i][j] + dp(i+,j);
return d[i][j]=map[i][j]+(dp(i,j+)>dp(i+,j)?dp(i,j+):dp(i+,j));
} int main()
{
cin>>N>>M;
for(int i=; i<N; i++)
for(int j=; j<M; j++)
cin>>map[i][j];
cout<<dp(,)<<endl;
return ;
}
刚开始写错了,浪费好长时间错误是
d[i][j]=map[i][j]+(dp(i,j+1)>dp(i+1,j)?dp(i,j+1):dp(i+1,j));
被我写成了
d[i][j]=map[i][j]+dp(i,j+1)>dp(i+1,j)?dp(i,j+1):dp(i+1,j);