社区讨论
WA 60pts求条(用了int128)
P1005[NOIP 2007 提高组] 矩阵取数游戏参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mdh2zm0y
- 此快照首次捕获于
- 2025/07/24 15:38 8 个月前
- 此快照最后确认于
- 2025/07/24 15:38 8 个月前
CPP
#include<bits/stdc++.h>
#define int __int128_t
using namespace std;
int n,m;
int a[114];
int dp[114][114];
inline void input(__int128 &s)
{
s=0;
char c=' ';
while(c>'9'||c<'0') c=getchar();
while(c>='0'&&c<='9')
{
s=s*10+c-'0';
c=getchar();
}
}
inline void output(__int128 x)
{
if(x>9)
output(x/10);
putchar(x%10+'0');
}
signed main(){
int ans = 0;
input(m),input(n);
for(int i = 1;i<=m;i++){
for(int j = 1;j<=n;j++){
input(a[j]);
}
int r;
for(int len = n;len>=1;len--){
for(int l = 1;l+len-1<= n;l++){
r = l+len-1;
dp[l][r] = max(dp[l-1][r]+a[l-1]*((int)1<<(n-len)),dp[l][r+1]+a[r+1]*((int)1<<(n-len)));
}
}
int cur = 0;
for(int j = 1;j<=n;j++){
cur = max(cur,dp[j][j]+a[j]*(1<<n));
}
ans += cur;
}
output(ans);
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...