建议加强数据……
查看原帖
建议加强数据……
658786
STUDENT00楼主2022/10/12 18:59

用__int128竟然能够水过(这蓝题直接掉黄了),代码如下:

#include<bits/stdc++.h>
#define ll __int128
using namespace std;
int n,m;
ll a[85][85],dp[85][85],ans;
ll input(){
	char c=getchar();
	while(c<48||c>57) c=getchar();
	ll num=0;
	while(c>=48&&c<=57){
		num=num*10+c-48;
		c=getchar();
	}
	return num;
}
void print(ll num){
	if(num){
		print(num/10);
		putchar(num%10+48);
	}
}
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) a[i][j]=input();
	for(int i=1;i<=n;i++){
		for(int l=m;l>=1;l--){
			for(int r=l;r<=m;r++){
				if(l==r) dp[l][r]=a[i][l];
				else dp[l][r]=max(a[i][l]+dp[l+1][r]*2,a[i][r]+dp[l][r-1]*2);
			}
		}
		ans+=dp[1][m]*2;
	}
	if(ans) print(ans);
	else putchar(48);
	return 0;
}
2022/10/12 18:59
加载中...