这是我的代码,不知道为啥输出0
#include <bits/stdc++.h>
using namespace std;
int t,mp[105][105];
int f[105][105];
int p,q;
int dfs(int x,int y){
if (f[x][y]!=-1) return f[x][y];
if (x==p && y==q) return f[x][y]=mp[x][y];
return f[x][y]=max(dfs(x+1,y),dfs(x,y-1))+mp[x][y];
}
int main(){
scanf("%d",&t);
while(t--){
int u,v;
cin>>u>>v;
p=u,q=v;
for(int i=1;i<=u;i++)
for(int j=1;j<=v;j++)
cin>>mp[i][j];
cout<<dfs(1,1)<<endl;
for(int i=1;i<=u;i++)
for(int j=1;j<=v;j++)
mp[i][j]=0;
}
return 0;
}
惨不忍睹的现场:
应该输出8
谢谢dalao