ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#214550 | #2709. Maximum Weight | wanghanyu393 | 100 | 2515ms | 6676kb | C++11 | 1.8kb | 2024-11-19 22:46:17 | 2024-11-19 23:04:45 |
answer
#include<iostream>
#include<cstring>
#include<algorithm>
#include<vector>
#include<cassert>
#include<map>
using namespace std;
#define int long long
struct UnionFind
{
private:
int n;
vector<int> par,siz;
public:
UnionFind(int n) :n(n),par(n,-1),siz(n,1) {}
int root(int u)
{
assert(0 <= u && u < n);
return (par[u] < 0 ? u:par[u] = root(par[u]));
}
bool same(int u,int v)
{
assert(0 <= u && u < n && 0 <= v && v < n);
return root(u) == root(v);
}
bool unite(int u,int v)
{
assert(0 <= u && u < n && 0 <= v && v < n);
u = root(u),v = root(v);
if(u == v) return false;
if(siz[u] < siz[v]) swap(u,v);
siz[u] += siz[v];
par[v] = u;
return true;
}
int size(int u)
{
assert(0 <= u && u < n);
return siz[root(u)];
}
vector<vector<int>> components()
{
vector<vector<int>> ret(n);
for(int u = 0;u < n;u++) ret[root(u)].push_back(u);
ret.erase(remove_if(ret.begin(),ret.end(),[](vector<int> v) { return v.empty();}),ret.end());
return ret;
}
};
struct edge{
int u, v, c;
};
bool cmp(edge a, edge b){
return a.c < b.c;
}
void solve(){
int n, m;
cin >> n >> m;
vector<edge>e;
for(int i = 1; i <= m; i++){
int u, v, c;
cin >> u >> v >> c;
u--, v--;
e.push_back({u, v, c});
}
sort(e.begin(), e.end(), cmp);
UnionFind dsu(n);
long long ans = 0;
for(int i = 0; i < m; i++){
if(!dsu.same(e[i].u, e[i].v)){
ans += e[i].c * dsu.size(e[i].u) * dsu.size(e[i].v);
dsu.unite(e[i].u, e[i].v);
}
}
cout << ans << '\n';
}
signed main(){
ios::sync_with_stdio(false);
ios_base::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
int t = 1;
cin >> t;
while(t--){
solve();
}
return 0;
}
详细
小提示:点击横条可展开更详细的信息
Test #1:
score: 5
Accepted
time: 0ms
memory: 1288kb
input:
5 200 200 87 21 609 97 9 566 169 28 893 181 137 280 139 67 622 78 186 503 104 59 24 58 7 460 2 5 972...
output:
16352732 16336938 18311542 17074338 17304585
result:
ok 5 lines
Test #2:
score: 5
Accepted
time: 0ms
memory: 1284kb
input:
5 200 200 138 19 453 178 159 227 89 99 937 38 60 806 145 45 448 169 146 982 180 153 382 73 167 608 1...
output:
17101828 17550376 16746021 17786837 16222316
result:
ok 5 lines
Test #3:
score: 5
Accepted
time: 0ms
memory: 1288kb
input:
5 200 200 140 37 428 167 191 722 18 70 854 12 63 869 40 107 253 146 21 701 198 126 594 55 183 67 2 4...
output:
16466132 16907763 17447896 17281330 17606236
result:
ok 5 lines
Test #4:
score: 5
Accepted
time: 0ms
memory: 1288kb
input:
5 200 200 187 173 189 59 103 160 12 143 13 16 115 179 130 108 854 7 39 124 164 72 407 66 200 625 105...
output:
16551712 17073788 18382571 16125810 17394218
result:
ok 5 lines
Test #5:
score: 5
Accepted
time: 0ms
memory: 1288kb
input:
5 200 200 29 8 307 152 26 149 114 137 559 9 146 81 179 5 203 3 150 8 26 81 660 82 69 356 60 51 591 1...
output:
17720164 16949531 17616778 17620129 16288612
result:
ok 5 lines
Test #6:
score: 5
Accepted
time: 1ms
memory: 1288kb
input:
5 200 200 35 144 182 145 194 241 163 140 918 102 193 228 167 130 338 40 65 646 22 1 238 131 120 122 ...
output:
17829792 17475817 17019069 17199330 17653988
result:
ok 5 lines
Test #7:
score: 5
Accepted
time: 156ms
memory: 6668kb
input:
5 53735 100000 39892 35843 390 26908 36823 655 6371 23805 896 22798 20233 34 26039 37466 620 22807 2...
output:
732544305334 2754865428244 382579317384 1280102815136 1229031627679
result:
ok 5 lines
Test #8:
score: 5
Accepted
time: 173ms
memory: 6664kb
input:
5 10229 100000 7299 6840 113 6306 8765 160 5192 8138 791 6357 5200 186 9344 6620 230 2728 5157 294 1...
output:
5404797207 20352728657 353943098727 1937353835830 21748452142
result:
ok 5 lines
Test #9:
score: 5
Accepted
time: 177ms
memory: 6668kb
input:
5 57846 100000 40438 9781 106 35677 46516 444 39104 10920 598 14172 5965 925 10993 42212 964 34922 5...
output:
904138784672 1229908083183 3312833162570 13466143626 117116026446
result:
ok 5 lines
Test #10:
score: 5
Accepted
time: 174ms
memory: 6664kb
input:
5 83866 100000 54676 45243 758 42970 31099 721 27422 62458 4 64200 18592 974 7505 20672 900 83354 49...
output:
2595447490609 123598549967 873449242705 163261591501 6530129535
result:
ok 5 lines
Test #11:
score: 5
Accepted
time: 179ms
memory: 6664kb
input:
5 10818 100000 6480 6451 261 10486 2548 495 8142 9400 330 4568 1781 682 8289 5945 660 1058 5902 378 ...
output:
6395040382 453510144589 1146821490214 1989455054879 2131608702734
result:
ok 5 lines
Test #12:
score: 5
Accepted
time: 169ms
memory: 6668kb
input:
5 28267 100000 6205 10002 70 12719 28165 6 6174 15544 940 3052 1398 62 648 16984 103 17068 3616 397 ...
output:
112235086092 704232646899 3480141264037 5409166707 847127748242
result:
ok 5 lines
Test #13:
score: 5
Accepted
time: 181ms
memory: 6664kb
input:
5 33283 100000 134 21400 430 22159 6741 87 2473 18253 422 13630 28077 144 22002 24779 437 13034 2417...
output:
181764918984 10494375881 2904692922887 2873734401778 1952601398766
result:
ok 5 lines
Test #14:
score: 5
Accepted
time: 168ms
memory: 6664kb
input:
5 95017 100000 37418 35411 167 6415 94231 616 3744 60077 591 73070 5537 37 50016 18446 825 55281 519...
output:
3761434512069 493802436522 3118031756937 254959337484 400341250283
result:
ok 5 lines
Test #15:
score: 5
Accepted
time: 170ms
memory: 6664kb
input:
5 35374 100000 7390 8869 566 34086 23636 990 32887 4674 494 6452 18007 424 12723 34687 25 11020 3193...
output:
217535971486 821519157137 1089950355527 203558732186 222284648865
result:
ok 5 lines
Test #16:
score: 5
Accepted
time: 172ms
memory: 6664kb
input:
5 99901 100000 35090 96613 813 67573 26667 941 3022 45474 629 10290 52654 196 12701 59286 893 80077 ...
output:
4639212192506 4527502650380 2646373298968 861236891829 1047783342082
result:
ok 5 lines
Test #17:
score: 5
Accepted
time: 169ms
memory: 6664kb
input:
5 60029 100000 51021 51437 658 17839 25439 501 51521 1893 516 20462 309 128 58519 8607 623 34157 498...
output:
1003441431151 1691484443966 1791163494281 18745776112 210354312422
result:
ok 5 lines
Test #18:
score: 5
Accepted
time: 185ms
memory: 6676kb
input:
5 25779 100000 2274 4201 54 11775 9137 148 697 21064 449 14126 25608 840 5579 19585 779 9641 15433 5...
output:
85132266903 182947677225 1097763476065 2659255065879 4423639006491
result:
ok 5 lines
Test #19:
score: 5
Accepted
time: 178ms
memory: 6668kb
input:
5 33220 100000 31269 1383 683 18955 25297 299 700 12197 974 27221 20329 796 29285 29654 414 21164 21...
output:
179906133251 3317919286134 3795092286748 3405456936976 1387185986674
result:
ok 5 lines
Test #20:
score: 5
Accepted
time: 263ms
memory: 6668kb
input:
5 17719 100000 11733 10279 4 15938 11631 578 9235 13763 91 13846 2450 912 12426 13022 236 13098 1628...
output:
27833343898 888210439717 13546738134 16496672955 438926144015
result:
ok 5 lines