问题描述
- 第一次到2 2 怎么返回到 1 1的 求解释下
-
#include
#include
using namespace std;
int a[100][100];
int s[100][100];
int m,n;void dp_fun(int x,int y)
{
s[x][y] = a[x][y];
int max = 0;
if(x > 0 && max < s[x-1][y])
{
max = s[x-1][y];
}
if(y > 0 && max < s[x][y-1])
{
max = s[x][y-1];
}
s[x][y] = s[x][y] + max;
if(x<m-1) 2 1 2 3
{ 4 5 6
dp_fun(x+1,y); 7 8 9
}if(y<n-1) 2
{
dp_fun(x,y+1);
}
return;
}int main()
{
memset(s,0,sizeof(s));
cin>>m>>n;
for(int i=0;i
{
for(int j=0;j
{
cin>>a[i][j];
}
}dp_fun(0,0);
for(i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
cout<<s[i][j]<<"t";
}
cout<<endl;
}
return 0;
}第一次到2 2 怎么返回到 1 1的 求解释下