ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#214514 | #2709. Maximum Weight | erican | 100 | 2185ms | 5092kb | C++11 | 2.2kb | 2024-11-19 19:38:03 | 2024-11-19 23:00:46 |
answer
/* Erica N */
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define mp make_pair
#define int long long
#define ull unsigned long long
#define pii pair<int, int>
#define ps second
#define pf first
#define itn int
#define rd read()
int read(){
int xx = 0, ff = 1;char ch = getchar();
while (ch < '0' || ch > '9') {if (ch == '-')ff = -1; ch = getchar();}
while (ch >= '0' && ch <= '9')xx = xx * 10 + (ch - '0'), ch = getchar();
return xx * ff;
}
// void write(int out) {
// if (out < 0)
// putchar('-'), out = -out;
// if (out > 9)
// write(out / 10);
// putchar(out % 10 + '0');
// }
#define cdbg(x...) do { cerr << #x << " -> "; err(x); } while (0)
void err() { cerr << endl; }
template<template<typename...> class T, typename t, typename... A>
void err(T<t> a, A... x) { for (auto v: a) cerr << v << ' '; err(x...); }
template<typename T, typename... A>
void err(T a, A... x) { cerr << a << ' '; err(x...); }
const int N = 3e5 + 5;
const int INF = 1e18;
const int M = 1e7;
const int MOD = 1e9 + 7;
struct Node{
int a,b,w;
}t[N];
bool cmp(Node a,Node b){
return a.w<b.w;
}
bitset<N> used;
int fa[N];
int ans;
int m,n;
int find(int a){
if(fa[a]==a)return a;
return fa[a]=find(fa[a]);
}
void kruskal(){
for(int i=1;i<=m;i++){
int faa=find(t[i].a);
int fbb=find(t[i].b);
if(faa==fbb)continue;
fa[faa]=fbb;
used[i]=1;
}
}
int sz[N];
void solve(){
n=rd,m=rd;
ans=0;
for(int i=1;i<=m;i++){
t[i]={rd,rd,rd};
used[i]=0;
}
sort(t+1,t+m+1,cmp);
for(int i=1;i<=n;i++){
fa[i]=i;
}
kruskal();
for(int i=1;i<=n;i++){
fa[i]=i;
sz[i]=1;
}
for(int i=1;i<=m;i++){
if(!used[i])continue;
int faa=find(t[i].a);
int fbb=find(t[i].b);
ans+=t[i].w*(sz[faa]*sz[fbb]);
sz[fbb]+=sz[faa];
fa[faa]=fbb;
}
cout<<ans<<endl;
}
signed main() {
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
int t=rd;
while(t--){
solve();
}
}
详细
小提示:点击横条可展开更详细的信息
Test #1:
score: 5
Accepted
time: 0ms
memory: 1192kb
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: 1192kb
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: 1192kb
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: 1192kb
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: 1192kb
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: 1196kb
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: 158ms
memory: 4864kb
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: 134ms
memory: 4712kb
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: 148ms
memory: 4956kb
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: 142ms
memory: 4832kb
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: 151ms
memory: 4752kb
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: 146ms
memory: 4976kb
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: 149ms
memory: 4888kb
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: 142ms
memory: 5012kb
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: 153ms
memory: 4500kb
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: 227ms
memory: 5092kb
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: 199ms
memory: 4680kb
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: 162ms
memory: 5080kb
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: 151ms
memory: 5016kb
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: 122ms
memory: 4424kb
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