社区讨论

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 条回复,欢迎继续交流。

正在加载回复...