10分 悬关 请求DeBug
查看原帖
10分 悬关 请求DeBug
711031
suyi1111楼主2023/10/6 19:04
#include<bits/stdc++.h>
#define int __int128
using namespace std;
int n,m,a[81][81],dp[81][81][81];
int input(){
	char c=getchar();
	int k=0;
	while(c>='0'&&c<='9'){
		k=k*10+(c-'0');
		c=getchar();
	}
	return k;
}
void print(int k){
	if(k>=10)print(k/10);
	char can_you_try_if_you_dont_i_am_ok_you_are_dont=k%10+'0';
	putchar(can_you_try_if_you_dont_i_am_ok_you_are_dont);
}
signed main()
{
	n=input();
	m=input();
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			a[i][j]=input();
			dp[i][j][j]=a[i][j]*2; 
		}
	}
	for(int l=1;l<=n;l++){
		for(int len=2;len<=m;len++){
			for(int i=1;i<=m-len+1;i++){
				int j=i+len-1;
				dp[l][i][j]=max(dp[l][i+1][j]*2+a[l][i]*2,dp[l][i][j-1]*2+a[l][j]*2);
			}
		}
	}
	int sum=0;
	for(int i=1;i<=n;i++){
		sum+=dp[i][1][m];
	}
	print(sum);
    return 0;
}

2023/10/6 19:04
加载中...