ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#456 | #80. 「NOIP2017」宝藏 | ryp | 100 | 548ms | 7216kb | C++14 | 1.3kb | 2025-04-24 13:54:07 | 2025-04-24 13:54:08 |
answer
#include <iostream>
#include <cstring>
#define int long long
using namespace std;
typedef pair<int, int> PII;
const int SIZE = 14, SIZE2 = 1 << SIZE, INF = 0x3f3f3f3f3f3f3f3f;
int N, M;
int D[SIZE][SIZE], G[SIZE][SIZE2];
int F[SIZE][SIZE2];
signed main()
{
cin.tie(0);
cout.tie(0);
ios::sync_with_stdio(0);
cin >> N >> M;
memset(D, 0x3f, sizeof D);
for (int i = 0; i < N; i ++) D[i][i] = 0;
while (M --)
{
int u, v, c;
cin >> u >> v >> c;
u --, v --;
D[u][v] = D[v][u] = min(D[u][v], c);
}
memset(G, 0x3f, sizeof G);
for (int i = 0; i < N; i ++)
for (int j = 0; j < 1 << N; j ++)
for (int k = 0; k < N; k ++)
if (j >> k & 1)
G[i][j] = min(G[i][j], D[i][k]);
memset(F, 0x3f, sizeof F);
for (int i = 0; i < N; i ++) F[0][1 << i] = 0;
for (int i = 1; i < 1 << N; i ++)
for (int j = i - 1 & i; j; j = j - 1 & i)
{
int Left = i ^ j, Cost = 0;
for (int k = 0; k < N; k ++)
if (j >> k & 1)
{
Cost += G[k][Left];
if (Cost >= INF) break;
}
if (Cost >= INF) continue;
for (int k = 1; k < N; k ++)
F[k][i] = min(F[k][i], F[k - 1][Left] + Cost * k);
}
int Result = INF;
for (int i = 0; i < N; i ++)
Result = min(Result, F[i][(1 << N) - 1]);
cout << Result << endl;
return 0;
}
详细
小提示:点击横条可展开更详细的信息
Test #1:
score: 5
Accepted
time: 4ms
memory: 7184kb
input:
1 0
output:
0
result:
ok "0"
Test #2:
score: 5
Accepted
time: 3ms
memory: 6820kb
input:
5 4 1 2 3 1 3 3 1 4 3 1 5 3
output:
12
result:
ok "12"
Test #3:
score: 5
Accepted
time: 3ms
memory: 6940kb
input:
8 7 1 2 3 2 3 3 3 4 3 4 5 3 5 6 3 6 7 3 7 8 3
output:
48
result:
ok "48"
Test #4:
score: 5
Accepted
time: 2ms
memory: 7008kb
input:
8 7 1 2 3 2 3 3 3 4 3 4 5 3 4 6 3 4 7 3 4 8 3
output:
30
result:
ok "30"
Test #5:
score: 5
Accepted
time: 6ms
memory: 6932kb
input:
8 20 6 8 4575 2 3 4575 5 6 4575 4 8 4575 8 1 4575 4 1 4575 3 6 4575 4 5 4575 4 5 4575 2 1 4575 7 8 4...
output:
45750
result:
ok "45750"
Test #6:
score: 5
Accepted
time: 4ms
memory: 6884kb
input:
7 79 2 1 1715 5 7 1715 4 6 1715 3 5 1715 3 4 1715 6 1 1715 1 2 1715 3 7 1715 2 1 1715 5 6 1715 4 7 1...
output:
10290
result:
ok "10290"
Test #7:
score: 5
Accepted
time: 5ms
memory: 6788kb
input:
6 26 1 5 93 4 5 93 1 2 93 6 3 93 4 6 93 1 2 93 6 1 93 6 2 93 1 4 93 3 4 93 4 3 93 6 2 93 1 4 93 5 2 ...
output:
465
result:
ok "465"
Test #8:
score: 5
Accepted
time: 0ms
memory: 7208kb
input:
7 47 5 1 808 4 3 808 5 2 808 2 7 808 2 4 808 3 1 808 5 1 808 4 2 808 5 4 808 5 6 808 3 1 808 1 2 808...
output:
4848
result:
ok "4848"
Test #9:
score: 5
Accepted
time: 1ms
memory: 7016kb
input:
5 806 5 1 4 3 5 2304 2 3 3533 5 2 4 5 1 1712 2 3 3760 4 1 144 5 2 2090 4 5 1603 1 4 862 5 3 2449 2 1...
output:
49
result:
ok "49"
Test #10:
score: 5
Accepted
time: 3ms
memory: 7136kb
input:
6 352 6 5 71 5 1 1591 2 4 106 6 2 3202 6 3 4021 2 4 132 4 2 1164 4 3 1102 2 1 2138 3 2 1755 1 3 1679...
output:
391
result:
ok "391"
Test #11:
score: 5
Accepted
time: 2ms
memory: 6948kb
input:
7 192 6 7 2992 4 1 2830 7 4 1972 2 3 4811 7 4 4400 4 3 1987 4 2 1205 5 1 1590 5 7 4824 2 6 1482 7 5 ...
output:
1037
result:
ok "1037"
Test #12:
score: 5
Accepted
time: 1ms
memory: 6792kb
input:
7 231 1 7 3862 1 6 1559 7 1 3538 2 6 2963 4 7 1170 3 7 1713 7 3 1737 6 7 409 2 5 2522 6 3 2412 2 3 2...
output:
1556
result:
ok "1556"
Test #13:
score: 5
Accepted
time: 3ms
memory: 6940kb
input:
8 196 2 7 3691 8 2 4425 5 8 4748 2 6 339 2 4 1368 1 5 55 6 3 3982 2 5 180 8 1 4436 4 8 4275 6 7 4204...
output:
649
result:
ok "649"
Test #14:
score: 5
Accepted
time: 6ms
memory: 7216kb
input:
8 324 5 7 4787 7 4 1110 3 4 4503 3 4 2527 2 7 1199 7 3 3660 5 1 982 7 2 1675 8 7 160 8 4 3790 7 5 35...
output:
630
result:
ok "630"
Test #15:
score: 5
Accepted
time: 43ms
memory: 6940kb
input:
11 793 1 6 267445 6 9 114589 11 7 356613 2 3 386762 1 3 262296 8 4 232142 7 3 60784 8 11 7827 7 5 16...
output:
78134
result:
ok "78134"
Test #16:
score: 5
Accepted
time: 46ms
memory: 6796kb
input:
11 988 8 1 298264 10 9 94456 9 1 348864 10 1 284796 11 6 203091 10 11 243084 7 1 34101 10 4 417170 4...
output:
58058
result:
ok "58058"
Test #17:
score: 5
Accepted
time: 99ms
memory: 7136kb
input:
12 110 10 8 349233 9 7 431229 3 2 23180 6 7 253401 10 7 376865 8 2 446361 4 9 474356 12 1 314737 6 1...
output:
690550
result:
ok "690550"
Test #18:
score: 5
Accepted
time: 111ms
memory: 7020kb
input:
12 294 2 3 343727 4 7 284269 10 4 146240 3 9 313885 5 6 366277 9 1 28701 7 8 329502 7 12 25620 6 1 5...
output:
190967
result:
ok "190967"
Test #19:
score: 5
Accepted
time: 101ms
memory: 7216kb
input:
12 769 11 1 269107 1 3 238993 6 11 218601 1 4 350327 8 12 23460 6 8 9637 3 7 292001 11 10 123618 6 9...
output:
76380
result:
ok "76380"
Test #20:
score: 5
Accepted
time: 105ms
memory: 7200kb
input:
12 763 11 5 332075 4 3 110459 5 11 412044 9 3 210419 11 1 53214 8 10 457467 6 3 47566 7 12 300566 9 ...
output:
123663
result:
ok "123663"