提出 #45058376
ソースコード 拡げる
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
class UnionFind{
public:
int par[100009];
int siz[100009];
int rank[100009];
void init(int n){
for (int i = 0; i < n; i++){
par[i] = -1;
rank[i] = -1;
siz[i] = -1;
}
}
int root(int x){
if (par[x] == -1){
return x;
}
else {
par[x] = root(par[x]);
return par[x];
}
}
bool same(int x, int y){
return root(x) == root(y);
}
bool unite(int x, int y){
int rx = root(x);
int ry = root(y);
if (rx == ry){
return false;
}
if (rank[rx] < rank[ry]){
swap(rx, ry);
}
par[ry] = rx;
if (rank[rx] == rank[ry]){
rank[rx] ++;
}
siz[rx] += siz[ry];
return true;
}
int size(int x){
return siz[root(x)];
}
};
vector<int> a(100009);
vector<int> b(100009);
vector<int> c(100009);
int main(){
int n, m;
cin >> n >> m;
UnionFind uf;
uf.init(n);
vector<pair<int, int>> edg;
for (int i = 0; i < m; i++){
cin >> a[i] >> b[i] >> c[i];
a[i] -= 1;
b[i] -= 1;
edg.push_back(make_pair(c[i], i));
}
int ans = 0;
sort(edg.begin(), edg.end());
for (int i = 0; i < m; i++){
int idx = edg[i].second;
if (uf.same(a[idx], b[idx]) == false){
uf.unite(a[idx], b[idx]);
ans += edg[i].first;
}
}
cout << ans << endl;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | A67 - MST (Minimum Spanning Tree) |
| ユーザ | harry_arbrebleu |
| 言語 | C++ (GCC 9.2.1) |
| 得点 | 1000 |
| コード長 | 1822 Byte |
| 結果 | AC |
| 実行時間 | 76 ms |
| メモリ | 6556 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 1000 / 1000 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | 00_sample_00.txt |
| All | 00_sample_00.txt, 01_in_00.txt, 01_in_01.txt, 01_in_02.txt, 01_in_03.txt, 01_in_04.txt, 01_in_05.txt, 01_in_06.txt, 01_in_07.txt, 01_in_08.txt, 01_in_09.txt, 01_in_10.txt, 01_in_11.txt, 01_in_12.txt, 01_in_13.txt, 01_in_14.txt, 01_in_15.txt, 01_in_16.txt, 01_in_17.txt, 01_in_18.txt, 01_in_19.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00_sample_00.txt | AC | 8 ms | 4496 KiB |
| 01_in_00.txt | AC | 3 ms | 4468 KiB |
| 01_in_01.txt | AC | 7 ms | 4460 KiB |
| 01_in_02.txt | AC | 6 ms | 4396 KiB |
| 01_in_03.txt | AC | 4 ms | 4380 KiB |
| 01_in_04.txt | AC | 5 ms | 4428 KiB |
| 01_in_05.txt | AC | 4 ms | 4388 KiB |
| 01_in_06.txt | AC | 3 ms | 4480 KiB |
| 01_in_07.txt | AC | 4 ms | 4508 KiB |
| 01_in_08.txt | AC | 3 ms | 4376 KiB |
| 01_in_09.txt | AC | 5 ms | 4348 KiB |
| 01_in_10.txt | AC | 56 ms | 5380 KiB |
| 01_in_11.txt | AC | 57 ms | 5320 KiB |
| 01_in_12.txt | AC | 76 ms | 6392 KiB |
| 01_in_13.txt | AC | 76 ms | 6472 KiB |
| 01_in_14.txt | AC | 69 ms | 6544 KiB |
| 01_in_15.txt | AC | 68 ms | 6548 KiB |
| 01_in_16.txt | AC | 76 ms | 6396 KiB |
| 01_in_17.txt | AC | 75 ms | 6416 KiB |
| 01_in_18.txt | AC | 73 ms | 6556 KiB |
| 01_in_19.txt | AC | 73 ms | 6468 KiB |