Submission #5824363
Source Code Expand
#include <stdio.h> #include <assert.h> #include <fstream> #include <iostream> #include <algorithm> #include <array> #include <vector> #include <queue> #include <set> #include <cmath> //#include <unordered_map> //#include <unordered_set> //#include <boost/container/static_vector.hpp> //#include <boost/unordered_set.hpp> //#include <boost/unordered_map.hpp> //#include <unistd.h> class Union_Find { public: std::vector<int> par; Union_Find() {} Union_Find(int n){ par.resize(n, 0); for(int i = 0; i < n; i++){ par[i] = i; } } void simplify(int x) { std::vector<int> path; while (par[x] != x) { path.push_back(x); x = par[x]; } for (int p : path) { par[p] = x; } } int find(int x){ simplify(x); return par[x]; } void unite(int x, int y){ x = find(x); y = find(y); if (x != y) { par[y] = x; // 改造する時は「根になっているノードの親を変更する」という原則が守られていることに注意。 } } }; const int MAX = 100050; const int MAX_N = 200050; const int MAX_K = 100050; int N, M; int K[MAX]; std::vector<int> L[MAX]; Union_Find uf = Union_Find(MAX * 2); int main(int argc, char **argv) { std::cin >> N >> M; int tmp; for (int i = 1; i <= N; i++) { std::cin >> K[i]; for (int j = 1; j <= K[i]; j++) { std::cin >> tmp; L[i].push_back(tmp); } } for (int i = 1; i <= N; i++) { for (int j : L[i]) { uf.unite(i, N + j); } } for (int i = 1; i <= N; i++) { if (uf.find(i) != uf.find(1)) { std::cout << "NO" << std::endl; return 0; } } std::cout << "YES" << std::endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - Interpretation |
User | critter |
Language | C++14 (GCC 5.4.1) |
Score | 400 |
Code Size | 2003 Byte |
Status | AC |
Exec Time | 73 ms |
Memory | 7548 KB |
Judge Result
Set Name | sample | dataset1 | dataset2 | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 200 / 200 | 200 / 200 | ||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
sample | sample-01.txt, sample-02.txt |
dataset1 | sample-01.txt, sample-02.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt |
dataset2 | sample-01.txt, sample-02.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, sample-01.txt, sample-02.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
01-01.txt | AC | 3 ms | 3328 KB |
01-02.txt | AC | 3 ms | 3328 KB |
01-03.txt | AC | 3 ms | 3456 KB |
01-04.txt | AC | 3 ms | 3456 KB |
01-05.txt | AC | 3 ms | 3456 KB |
01-06.txt | AC | 3 ms | 3456 KB |
01-07.txt | AC | 3 ms | 3456 KB |
01-08.txt | AC | 3 ms | 3456 KB |
01-09.txt | AC | 3 ms | 3456 KB |
01-10.txt | AC | 3 ms | 3456 KB |
02-01.txt | AC | 43 ms | 4096 KB |
02-02.txt | AC | 65 ms | 6784 KB |
02-03.txt | AC | 48 ms | 4096 KB |
02-04.txt | AC | 60 ms | 5376 KB |
02-05.txt | AC | 73 ms | 6144 KB |
02-06.txt | AC | 57 ms | 5376 KB |
02-07.txt | AC | 69 ms | 6528 KB |
02-08.txt | AC | 47 ms | 7352 KB |
02-09.txt | AC | 69 ms | 7548 KB |
02-10.txt | AC | 49 ms | 5760 KB |
02-11.txt | AC | 46 ms | 5756 KB |
02-12.txt | AC | 56 ms | 5376 KB |
02-13.txt | AC | 48 ms | 5376 KB |
sample-01.txt | AC | 3 ms | 3328 KB |
sample-02.txt | AC | 3 ms | 3328 KB |