__int128偶遇高精 拼尽全力无法AC 球条
查看原帖
__int128偶遇高精 拼尽全力无法AC 球条
1234420
zhangsiyu2304楼主2025/2/4 17:30
#include <iostream>
#include <cmath>
#include <cstring>
#define ll long long
#define int128 __int128
using namespace std;

const int MAXN=80;

int n,m,mat[MAXN][MAXN],out[40];
int128 f[MAXN][MAXN][MAXN],ans;      //f[row][l][r]

int main(){
	cin>>n>>m;
	for (int i=1;i<=n;i++)
		for (int j=1;j<=m;j++)
			cin>>mat[i][j];
			
	for (int row=1;row<=n;row++){
		for (int i=1;i<=m;i++) f[row][i][i]=mat[row][i]*pow(2,m-1);
		for (int len=2;len<=m;len++){
			for (int l=1,r=len;r<=m;l++,r++){
				f[row][l][r]=max(
					f[row][l][r-1]+mat[row][r]*pow(2,m-r+l-1),
					f[row][l+1][r]+mat[row][l]*pow(2,m-r+l-1)
				);
			}
		}
		ans+=f[row][1][m];
	}

	ans*=2;
	
	int start=0;
	if (ans){
		while (ans){
			start++;
			out[start]=ans%10;
			ans/=10;
		}
		
		for (int i=start;i;i--) cout<<out[i];
	}else{
		cout<<'0';
	}
	return 0;
}

2025/2/4 17:30
加载中...