QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#220399#6397. Master of Both IIICedeatRE 1ms3468kbC++201.4kb2023-10-20 10:21:102023-10-20 10:21:10

Judging History

你现在查看的是最新测评结果

  • [2023-10-20 10:21:10]
  • 评测
  • 测评结果:RE
  • 用时:1ms
  • 内存:3468kb
  • [2023-10-20 10:21:10]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;

#define dbg(x...)                  \
    do {                           \
        std::cout << #x << " -> "; \
        err(x);                    \
    } while (0)

void err() {
    std::cout << std::endl;
}

template <class T, class... Ts>
void err(T arg, Ts ...args) {
    std::cout << arg << ' ';
    err(args...);
}

using ll = long long;

constexpr int P = 998244353;

void Solve(int tCase) {
    int n;
    cin >> n;
    vector<int> w(n);
    for (int i = 0; i < n; i++) {
        cin >> w[i];
    }
    vector<ll> f(1 << n, 1e10);
    f[1] = 0;
    for (int i = 1; i < n; i++) {
        for (int j = 1; j < 1 << n; j++) {
            int cur = j << i;
            int t = cur % (1 << n) + cur / (1 << n);
            f[t | j] = min(f[t | j], f[j] + w[n - i]);
        }
    }
    for (int j = 0; j < n; j++) {
        for (int i = 0; i < 1 << n; i++) {
            if (!(i >> j & 1)) {
                f[i] = min(f[i], f[i ^ (1 << j)]);
            }
        }
    }
    ll ans = 0;
    for (int i = 1; i < 1 << n; i++) {
        ans = (ans + f[i] * i) % P;
    }
    cout << ans << '\n';
}

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int T = 1;
    //cin >> T;
    for (int t = 1; t <= T; ++t) {
        Solve(t);
    }
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3440kb

input:

3
2 1 2

output:

45

result:

ok 1 number(s): "45"

Test #2:

score: 0
Accepted
time: 0ms
memory: 3436kb

input:

4
1919810 999999998 999999997 114114514

output:

152175989

result:

ok 1 number(s): "152175989"

Test #3:

score: 0
Accepted
time: 0ms
memory: 3436kb

input:

3
842160586 705327547 868243944

output:

78597628

result:

ok 1 number(s): "78597628"

Test #4:

score: 0
Accepted
time: 1ms
memory: 3420kb

input:

5
198327434 147392532 760837755 771109105 676721155

output:

751568230

result:

ok 1 number(s): "751568230"

Test #5:

score: 0
Accepted
time: 1ms
memory: 3424kb

input:

10
831766351 33417723 223739726 80131988 348810263 415437931 119999060 799356097 512022962 23197703

output:

308170104

result:

ok 1 number(s): "308170104"

Test #6:

score: 0
Accepted
time: 1ms
memory: 3460kb

input:

12
892965903 35291219 261557729 131390943 457251874 944586973 724767219 190756777 658923976 587806068 793999675 378390067

output:

964920873

result:

ok 1 number(s): "964920873"

Test #7:

score: 0
Accepted
time: 0ms
memory: 3468kb

input:

14
249132751 477356204 594343028 32906794 270726189 883801423 329535378 877124753 100792287 152414432 142520554 196476850 924736849 383197276

output:

796031217

result:

ok 1 number(s): "796031217"

Test #8:

score: -100
Runtime Error

input:

20
627365465 726842612 947302944 649244156 293375951 318148820 237155023 981487641 688151803 844901013 430309799 733877736 520864483 720366437 28746495 143052089 306590290 18586578 662663479 375430013

output:


result: