用__int128超时求调QAQ
查看原帖
用__int128超时求调QAQ
728688
ronkeyson楼主2024/9/16 21:57
#include <bits/stdc++.h>
#define ll long long

using namespace std;

const int N = 8e1 + 5;

int n, m, a[N];
__int128 tmp[N], f[N][N], ans;

inline void Write(__int128 x)  {
    static int sta[35];
    int top = 0;
    do {
        sta[top++] = x % 10, x /= 10;
    } while (x);
    while (top) putchar(sta[--top] + '0');
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    
    cin >> n >> m;
    tmp[1] = (__int128)2;
    for (int i = 2; i <= 30; i++) {
        tmp[i] = tmp[i - 1] * (__int128)2;
    }
    while (n--) {
        for (int i = 1; i <= m; i++) {
            cin >> a[i];
            f[i][1] = (__int128)a[i] * tmp[m];
        }
        for (int i = 2; i <= m; i++) {
            for (int j = 1; (j + i - 1) <= m; j++) {
                f[j][i] = max(f[j][i - 1] + (__int128)a[j + i - 1] * tmp[m - i + 1], f[j + 1][i - 1] + (__int128)a[j] * tmp[m - i + 1]);
            }
        }
        ans += f[1][m];
    }
    Write(ans);
    
    return 0;
}
2024/9/16 21:57
加载中...