求救(__int128版)
查看原帖
求救(__int128版)
533130
夏凌汐楼主2021/7/24 17:45
#include<bits/stdc++.h>
using namespace std;

int n,m;
int a[100][100];
__int128 dp[100][100][100]; //36位 
__int128 ans,maxn;

void write(__int128 x){
 	if(x<0){
		putchar('-');
		x=-x;
	}
	if(x>9){
		write(x/10);	
	}
	putchar(x%10+'0');
}

int main(){
	scanf("%d %d",&n,&m); 
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
		}
	}
	for(register int i=1;i<=n;i++){
		for(register int j=1;j<=m;j++){ 
			for(register int l=0;l<=j;l++){
				dp[i][j][l]=max(dp[i][j-1][(l-1>0)?l-1:0]+(a[i][l]*(1<<j)),dp[i][j-1][l]+(a[i][m-j+l+1]*(1<<j)));
			}	
		}
	}
	for(register int i=1;i<=n;i++){
		for(register int j=1;j<=m;j++){
			maxn=max(maxn,dp[i][m][j]); 
		} 
		ans+=maxn;
		maxn=0;
	}
	write(ans);
	return 0;
}
2021/7/24 17:45
加载中...