社区讨论
__int128偶遇高精 拼尽全力无法AC 球条
P1005[NOIP 2007 提高组] 矩阵取数游戏参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @m6qa5xk0
- 此快照首次捕获于
- 2025/02/04 17:31 去年
- 此快照最后确认于
- 2025/11/04 10:00 4 个月前
CPP
#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;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...