样例41output42
查看原帖
样例41output42
787031
UKE_Piu楼主2024/12/17 13:13
#include<bits/stdc++.h>
using namespace std;
int n,m;
const int N=1e3+3,inf=1145140000;
int a[N][N],f[N][N];
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++) 
	  for(int j=1;j<=m;j++) {
	  	cin>>a[i][j];
	  	f[i][j]=-inf;
	  }
/*	f[n/2][1]=a[n/2][1];
	f[n/2-1][1]=a[n/2-1][1];
	f[n/2+1][1]=a[n/2+1][1];
*/	for(int j=1;j<=m;j++)
	  for(int i=max(n/2-j,1);i<=min(n/2+j,n);i++){
	  	f[i][j]=max(f[i][j],f[i][j-1]+a[i][j]);
	  	if(i>1) f[i][j]=max(f[i][j],f[i-1][j-1]+a[i][j]);
	  	if(i<n) f[i][j]=max(f[i][j],f[i+1][j-1]+a[i][j]);
	  }
	int ans=-inf;
	for(int i=1;i<=n;i++) ans=max(ans,f[i][m]);
	cout<<ans;
	return 0;
}
2024/12/17 13:13
加载中...