Submission #1226426
Source Code Expand
#include <iostream> #include <cstdio> #include <iomanip> #include <cstdlib> #include <cmath> #include <vector> #include <queue> #include <algorithm> #include <functional> #include <numeric> #include <set> #include <map> #include <list> #include <bitset> #define debug(x) cout << #x << ": " << (x) << endl using namespace std; const double PI = 3.141592653589793238463; const int INF = 1000000007; using ull = unsigned long long; using ll = long long; using Int = int; using Double = double; using P = pair<Int, Int>; using V = vector<Int>; using M = vector<V>; struct UnionFind{ V data; UnionFind(int size): data(size, -1){} bool unite(int x, int y){ x = find(x); y = find(y); if(x == y){ return false; } if(data[y] < data[x]){ swap(x, y); } data[x] += data[y]; data[y] = x; return true; } int find(int x){ if(data[x] < 0){ return x; }else{ return data[x] = find(data[x]); } } }; int solve(int n, int m, V& as, V& bs){ UnionFind uf(n); for(int i = 0; i < m; i++){ uf.unite(as[i] - 1, bs[i] - 1); } return count_if(begin(uf.data), end(uf.data), [](int x){return x < 0;}) - 1; } int main(int argc, char* argv[]){ cin.tie(0); ios::sync_with_stdio(false); int n, m; cin >> n >> m; V as(m), bs(m); for(int i = 0; i < m; i++){ cin >> as[i] >> bs[i]; // scanf("%d %d", &as[i], &bs[i]); } cout << solve(n, m, as, bs) << "\n"; return 0; }
Submission Info
Submission Time | |
---|---|
Task | B - 道路工事 |
User | proton06 |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 1673 Byte |
Status | AC |
Exec Time | 18 ms |
Memory | 1408 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 100 / 100 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample1.txt, sample2.txt |
All | 0.txt, 1.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 2.txt, 3.txt, 4.txt, 5.txt, 6.txt, 7.txt, 8.txt, 9.txt, sample1.txt, sample2.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
0.txt | AC | 1 ms | 256 KB |
1.txt | AC | 1 ms | 256 KB |
10.txt | AC | 1 ms | 256 KB |
11.txt | AC | 1 ms | 256 KB |
12.txt | AC | 1 ms | 256 KB |
13.txt | AC | 1 ms | 256 KB |
14.txt | AC | 1 ms | 256 KB |
15.txt | AC | 15 ms | 1024 KB |
16.txt | AC | 1 ms | 640 KB |
17.txt | AC | 1 ms | 640 KB |
18.txt | AC | 1 ms | 640 KB |
19.txt | AC | 18 ms | 1408 KB |
2.txt | AC | 1 ms | 256 KB |
3.txt | AC | 1 ms | 256 KB |
4.txt | AC | 1 ms | 256 KB |
5.txt | AC | 1 ms | 256 KB |
6.txt | AC | 1 ms | 256 KB |
7.txt | AC | 1 ms | 256 KB |
8.txt | AC | 1 ms | 256 KB |
9.txt | AC | 1 ms | 256 KB |
sample1.txt | AC | 1 ms | 256 KB |
sample2.txt | AC | 1 ms | 256 KB |