QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#259794 | #7793. 雷同 | hos_lyric# | 20 | 514ms | 4332kb | C++14 | 2.4kb | 2023-11-21 13:56:55 | 2024-07-04 03:08:02 |
Judging History
answer
#include <cassert>
#include <cmath>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <functional>
#include <iostream>
#include <limits>
#include <map>
#include <numeric>
#include <queue>
#include <random>
#include <set>
#include <sstream>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>
using namespace std;
using Int = long long;
template <class T1, class T2> ostream &operator<<(ostream &os, const pair<T1, T2> &a) { return os << "(" << a.first << ", " << a.second << ")"; };
template <class T> ostream &operator<<(ostream &os, const vector<T> &as) { const int sz = as.size(); os << "["; for (int i = 0; i < sz; ++i) { if (i >= 256) { os << ", ..."; break; } if (i > 0) { os << ", "; } os << as[i]; } return os << "]"; }
template <class T> void pv(T a, T b) { for (T i = a; i != b; ++i) cerr << *i << " "; cerr << endl; }
template <class T> bool chmin(T &t, const T &f) { if (t > f) { t = f; return true; } return false; }
template <class T> bool chmax(T &t, const T &f) { if (t < f) { t = f; return true; } return false; }
#define COLOR(s) ("\x1b[" s "m")
constexpr Int INF = 1001001001001001001LL;
int N;
vector<Int> W;
namespace brute {
Int dp[1 << 12][13];
Int run() {
cerr<<"[brute::run]"<<endl;
vector<Int> WSum(1 << N, 0);
for (int u = 0; u < N; ++u) {
for (int p = 0; p < 1 << u; ++p) {
WSum[p | 1 << u] = WSum[p] + W[u];
}
}
for (int p = 0; p < 1 << N; ++p) {
fill(dp[p], dp[p] + (N + 1), INF);
}
for (int u = 0; u < N; ++u) {
dp[1 << u][0] = 0;
}
for (int p = 1; p < 1 << N; ++p) {
for (int q = p; --q &= p; ) {
for (int a = 0; a < N; ++a) for (int b = 0; b < N; ++b) {
chmin(dp[p][max(a, b) + 1], dp[p - q][a] + dp[q][b] + ((1LL<<min(a,b))-1) + WSum[p]);
}
}
}
Int ans = INF;
for (int a = 0; a <= N; ++a) {
chmin(ans, dp[(1 << N) - 1][a]);
}
return ans;
}
} // brute
int main() {
for (int numCases; ~scanf("%d", &numCases); ) { for (int caseId = 1; caseId <= numCases; ++caseId) {
scanf("%d", &N);
W.resize(N);
for (int u = 0; u < N; ++u) {
scanf("%lld", &W[u]);
}
sort(W.begin(), W.end());
const Int brt = brute::run();
printf("%lld\n", brt);
}
#ifndef LOCAL
break;
#endif
}
return 0;
}
詳細信息
Subtask #1:
score: 5
Accepted
Test #1:
score: 5
Accepted
time: 1ms
memory: 3952kb
input:
4 6 1 3 5 7 9 11 6 2 4 6 8 10 12 6 100 1000 100 10 100 10 2 114514 1919810
output:
86 103 1981 2034324
result:
ok 4 tokens
Subtask #2:
score: 15
Accepted
Dependency #1:
100%
Accepted
Test #2:
score: 15
Accepted
time: 513ms
memory: 4332kb
input:
5 12 2 4 3 2 2 3 4 2 3 2 2 1 12 3 3 3 2 3 2 3 2 1 1 2 4 12 6 2 2 2 5 4 6 1 2 8 8 6 12 1 4 2 2 1 6 7 2 4 1 7 5 12 11 1 2 6 16 16 15 8 8 16 6 12
output:
114 109 183 146 400
result:
ok 5 tokens
Test #3:
score: 0
Accepted
time: 513ms
memory: 4316kb
input:
5 12 4 2 4 3 2 4 4 4 3 1 1 1 12 3 4 6 5 2 3 2 5 1 3 4 4 12 3 6 4 3 5 2 5 2 5 2 3 1 12 1 2 2 3 7 7 6 4 1 2 9 3 12 12 5 12 4 3 9 3 14 5 11 6 6
output:
120 154 150 162 316
result:
ok 5 tokens
Test #4:
score: 0
Accepted
time: 514ms
memory: 4248kb
input:
5 12 3 1 2 1 2 3 1 1 1 2 1 3 12 4 7 7 6 6 2 3 7 1 7 6 6 12 13 7 13 7 9 1 5 13 3 13 9 7 12 12 12 15 13 15 22 33 33 21 9 15 3 12 123141171 193440418 455041175 665153544 746164805 372591232 659412139 493891488 760749047 4896558 90497398 964891156
output:
80 223 349 708 18084123310
result:
ok 5 tokens
Test #5:
score: 0
Accepted
time: 513ms
memory: 4308kb
input:
5 12 2 4 3 2 5 1 6 2 5 2 1 4 12 2 6 6 6 12 8 8 6 12 6 10 11 12 23 26 26 31 13 20 13 31 2 1 15 30 12 56 33 66 31 27 64 26 2 48 55 46 66 12 113216 35921 62630 73720 41172 102245 41642 39101 40760 105980 2857 63443
output:
133 335 782 1809 2470930
result:
ok 5 tokens
Subtask #3:
score: 0
Runtime Error
Dependency #2:
100%
Accepted
Test #6:
score: 0
Runtime Error
input:
5 30 34 3 20 7 6 9 22 3 24 2 3 40 25 9 6 4 3 36 5 38 21 9 5 4 21 6 28 32 17 3 30 1 6 9 2 6 9 7 2 2 4 3 5 6 8 9 7 2 7 12 7 8 4 9 8 2 8 2 12 3 2 30 4 1 1 4 4 1 3 4 3 2 4 4 1 1 2 3 3 3 2 1 2 4 4 3 3 4 4 4 3 1 30 9 6 9 8 3 10 10 1 6 1 1 6 6 10 4 9 1 4 1 6 1 10 4 9 10 7 5 2 9 8 28 7 9 6 3 5 5 1 10 9 3 1 ...
output:
result:
Subtask #4:
score: 0
Skipped
Dependency #3:
0%
Subtask #5:
score: 0
Skipped
Dependency #4:
0%
Subtask #6:
score: 0
Runtime Error
Test #39:
score: 0
Runtime Error
input:
2 2500 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3...
output:
result:
Subtask #7:
score: 0
Skipped
Dependency #5:
0%