看了题解的思路,写完20分,感觉和题解写的一样(找不同没找出来)有人帮忙看看吗
(看的是这篇https://www.luogu.com.cn/article/oo8u4b1z)
#include<bits/stdc++.h>
using namespace std;
long long mp[1005][1005],f[1005][1005][2];
int main(){
long long n,m;
cin>>n>>m;
for(long long i=1;i<=n;i++){
for(long long j=1;j<=m;j++){
scanf("%lld",&mp[i][j]);
f[i][j][0]=-0x7fffffff;
f[i][j][1]=-0x7fffffff;
}
}
f[1][1][0]=mp[1][1];
for(long long j=1;j<=m;j++){
for(long long i=1;i<=n;i++){
if(i==1&&j==1)continue;
f[i][j][0]=max(f[i][j-1][0],max(f[i][j-1][1],f[i-1][j][0]))+mp[i][j];
}
for(long long i=n;i>=1;i--){
f[i][j][1]=max(f[i][j-1][0],max(f[i][j-1][1],f[i+1][j][1]))+mp[i][j];
}
}
cout<<f[n][m][0];
return 0;
}