QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#296517 | #7871. 命运 | oscaryang | 15 | 6ms | 11472kb | C++20 | 2.0kb | 2024-01-03 08:57:40 | 2024-01-03 08:57:40 |
Judging History
answer
#include<bits/stdc++.h>
#define vc vector
#define pb emplace_back
#define pii pair<int, int>
#define mkp make_pair
#define rep(i, a, b) for(int i = (a); i <= (b); ++i)
#define lep(i, a, b) for(int i = (a); i >= (b); --i)
#define int long long
using namespace std;
inline int read() {
int x = 0, w = 0; char ch = getchar(); while(!isdigit(ch)) w |= (ch == '-'), ch = getchar();
while(isdigit(ch)) x = x * 10 + (ch ^ 48), ch = getchar(); return w ? -x : x;
}
const int N = 1e6 + 5, P = 1e9 + 7, inf = 0x3f3f3f3f3f3f3f3f;
inline void chkmin(int &x, int y) { x = x > y ? y : x; }
inline void inc(int &x, int y) { x += y - P; x += (x >> 31) & P; }
inline int power(int a, int b) { int res = 1; for(; b; b >>= 1, a = 1ll * a * a % P) if(b & 1) res = 1ll * res * a % P; return res; }
inline int inv(int x) { return power(x, P - 2); }
int n, m, k, s, ans, anc[N], val[N], key[N];
struct edge { int u, v, w; bool friend operator<(edge A, edge B) { return A.w < B.w; } };
vc<edge> e;
vc<int> all;
inline int get(int x) { return anc[x] == x ? x : anc[x] = get(anc[x]); }
inline void merge(int x, int y, int z) {
x = get(x); y = get(y);
if(x == y) return ;
if(val[x] > val[y]) swap(x, y);
anc[y] = x; key[y] = z; ans += z;
}
signed main() {
n = read(); m = read(); k = read(); s = read();
rep(i, 1, n) anc[i] = i, val[i] = inf, key[i] = -1;
for(int i = 1, u, v, w; i <= m; i++) {
u = read(); v = read(); w = read();
if(u == s) chkmin(val[v], w);
else if(v == s) chkmin(val[u], w);
else e.pb(edge{u, v, w});
}
sort(e.begin(), e.end());
for(int i = 0; i < e.size(); i++)
merge(e[i].u, e[i].v, e[i].w);
rep(i, 1, n) if(i != s && get(i) == i) {
if(val[i] == inf) return puts("nonnondayo"), 0;
--k; ans += val[i]; val[i] = inf;
}
if(k < 0) return puts("nonnondayo"), 0;
vc<int> ex;
rep(i, 1, n) if(i != s && val[i] != inf)
ex.pb(val[i] - key[i]);
if(ex.size() < k) return puts("nonnondayo"), 0;
sort(ex.begin(), ex.end());
rep(i, 0, k - 1) ans += ex[i];
cout << ans << endl;
return 0;
}
详细
Subtask #1:
score: 5
Accepted
Test #1:
score: 5
Accepted
time: 0ms
memory: 11244kb
input:
49277 49276 1 49277 1 2 2000 2 3 3000 2 4 4000 3 5 5000 3 6 6000 4 7 7000 1 8 8000 7 9 9000 1 10 10000 5 11 11000 4 12 12000 3 13 13000 13 14 14000 1 15 15000 7 16 16000 11 17 17000 2 18 18000 10 19 19000 6 20 20000 4 21 21000 17 22 22000 1 23 23000 14 24 24000 4 25 25000 16 26 26000 15 27 27000 9 2...
output:
1214136002000
result:
ok single line: '1214136002000'
Test #2:
score: 0
Accepted
time: 5ms
memory: 11352kb
input:
49324 49323 1 49324 1 2 2 2 3 3 2 4 4 3 5 5 4 6 6 6 7 7 2 8 8 2 9 9 4 10 10 6 11 11 9 12 12 4 13 13 8 14 14 8 15 15 7 16 16 11 17 17 15 18 18 2 19 19 10 20 20 19 21 21 14 22 22 16 23 23 20 24 24 23 25 25 3 26 26 2 27 27 8 28 28 11 29 29 20 30 30 15 31 31 16 32 32 19 33 33 29 34 34 5 35 35 21 36 36 1...
output:
nonnondayo
result:
ok single line: 'nonnondayo'
Test #3:
score: 0
Accepted
time: 5ms
memory: 11356kb
input:
49423 49422 1 1 1 2 2 2 3 3 1 4 4 3 5 5 2 6 6 1 7 7 1 8 8 7 9 9 3 10 10 3 11 11 5 12 12 3 13 13 9 14 14 10 15 15 13 16 16 5 17 17 9 18 18 12 19 19 17 20 20 4 21 21 5 22 22 12 23 23 21 24 24 21 25 25 11 26 26 17 27 27 21 28 28 18 29 29 17 30 30 2 31 31 21 32 32 28 33 33 17 34 34 31 35 35 11 36 36 8 3...
output:
nonnondayo
result:
ok single line: 'nonnondayo'
Test #4:
score: 0
Accepted
time: 0ms
memory: 11044kb
input:
49501 49500 49501 49501 1 2 2 1 3 3 3 4 4 2 5 5 5 6 6 1 7 7 6 8 8 5 9 9 6 10 10 5 11 11 2 12 12 12 13 13 13 14 14 8 15 15 13 16 16 5 17 17 9 18 18 9 19 19 9 20 20 14 21 21 18 22 22 16 23 23 7 24 24 1 25 25 7 26 26 1 27 27 15 28 28 22 29 29 20 30 30 12 31 31 4 32 32 16 33 33 22 34 34 11 35 35 27 36 3...
output:
nonnondayo
result:
ok single line: 'nonnondayo'
Subtask #2:
score: 10
Accepted
Test #5:
score: 10
Accepted
time: 1ms
memory: 7636kb
input:
21 20 2 21 1 2 18581 1 3 9620 2 4 4362 1 5 7702 5 6 17435 4 7 11679 3 8 14832 1 9 15073 2 10 6595 5 11 19676 11 12 16943 12 13 5268 5 14 20262 8 15 8192 7 16 12340 7 17 1437 7 18 3064 2 19 10437 12 20 2882 19 21 13483
output:
nonnondayo
result:
ok single line: 'nonnondayo'
Test #6:
score: 0
Accepted
time: 1ms
memory: 7700kb
input:
10 20 4 3 1 2 18247 2 3 9041 2 4 4031 2 5 7363 3 6 17172 1 7 11014 6 8 14781 8 9 15347 8 10 6598 5 9 19331 3 10 16523 10 6 5732 2 3 20357 6 9 8827 10 3 12864 6 3 1551 5 6 3932 3 1 10223 9 3 2296 8 5 13620
output:
54418
result:
ok single line: '54418'
Test #7:
score: 0
Accepted
time: 1ms
memory: 7696kb
input:
10 20 6 10 1 2 18401 2 3 9843 3 4 4219 4 5 7552 4 6 17751 4 7 11318 5 8 14774 8 9 15541 5 10 6928 6 10 19860 10 5 16699 5 8 5937 5 2 20611 1 8 8077 10 1 12386 9 4 1663 9 10 3910 1 9 10401 7 10 2383 2 9 13681
output:
nonnondayo
result:
ok single line: 'nonnondayo'
Test #8:
score: 0
Accepted
time: 1ms
memory: 7920kb
input:
10 20 1 10 1 2 18853 2 3 9034 3 4 4069 3 5 7743 3 6 17122 6 7 11715 2 8 14814 1 9 15011 7 10 6248 6 8 19400 7 3 16354 6 8 5249 7 8 20701 5 10 8079 10 5 12570 7 10 1006 8 3 3814 5 10 10753 5 9 2310 8 6 13123
output:
59951
result:
ok single line: '59951'
Test #9:
score: 0
Accepted
time: 1ms
memory: 7636kb
input:
10 11 3 1 1 2 9407 1 3 7005 1 4 5453 1 5 4585 1 6 8278 1 7 6332 1 8 1415 1 9 3809 1 10 10519 2 6 2507 10 6 11580
output:
nonnondayo
result:
ok single line: 'nonnondayo'
Subtask #3:
score: 0
Wrong Answer
Dependency #2:
100%
Accepted
Test #10:
score: 0
Wrong Answer
time: 1ms
memory: 7844kb
input:
1000 3000 100 10 1 2 2270918 1 3 871400 2 4 1242131 3 5 2307909 5 6 1391239 3 7 1431327 7 8 2501929 5 9 2377716 8 10 612146 5 11 991199 11 12 1810465 10 13 1094558 10 14 2605381 8 15 872336 10 16 2092297 5 17 619719 14 18 1161002 5 19 1828768 10 20 837691 2 21 1787203 3 22 396276 21 23 1371664 16 24...
output:
642993319
result:
wrong answer 1st lines differ - expected: '645739778', found: '642993319'
Subtask #4:
score: 0
Wrong Answer
Dependency #1:
100%
Accepted
Test #14:
score: 0
Wrong Answer
time: 6ms
memory: 11472kb
input:
49997 54855 3516 1 3 2 123052288 4 2 96660489 5 4 21916339 6 4 110026562 7 2 37432698 8 4 38560777 9 5 83209343 10 9 80352789 11 2 88956732 12 7 65449905 13 2 38239108 14 5 90154247 15 4 30810782 16 13 96492679 17 14 112886179 18 9 87190321 19 5 91181643 20 3 107304129 21 15 101439791 22 19 12060197...
output:
2680868753191
result:
wrong answer 1st lines differ - expected: '2688197428747', found: '2680868753191'
Subtask #5:
score: 0
Wrong Answer
Test #17:
score: 0
Wrong Answer
time: 6ms
memory: 11396kb
input:
49996 50165 184 1 3 2 123052595 4 3 96661399 5 2 21916499 6 3 110026337 7 6 37432710 8 2 38560107 9 8 83209370 10 8 80352229 11 2 88957425 12 7 65449321 13 5 38238243 14 5 90153912 15 11 30810953 16 3 96492912 17 13 112885611 18 15 87190336 19 9 91182003 20 2 107304872 21 6 101440738 22 13 120601711...
output:
2902609719407
result:
wrong answer 1st lines differ - expected: '2902613721568', found: '2902609719407'
Subtask #6:
score: 0
Skipped
Dependency #3:
0%
Subtask #7:
score: 0
Skipped
Dependency #1:
100%
Accepted
Dependency #2:
100%
Accepted
Dependency #3:
0%