Submission #2978667
Source Code Expand
#include<bits/stdc++.h> using namespace std; //#define int long long #define put(n) cout<<(n)<<"\n" #define FOR(i,num,N) for(int(i)=(num);(i)<(N);(i)++) #define RFOR(i,num,N) for(int (i)=(num);(i)>(N);(i)--) #define all(v) (v).begin() , (v).end() #define rall(v) (v).rbegin() , (v).rend() int N,M; vector<pair<int,int>> U_V; vector<bool> reached; int ans = 0; bool closed; void dfs(int node){ reached[node] = true;//到達した FOR(i,0,M){ if(U_V[i].first == node){//頂点と同じU[i]を探す if(!reached[U_V[i].second]){//V[i]に辿りついていないなら潜る dfs(U_V[i].second); } else closed = true;//連結成分に閉路があればフラグを立てる } } } signed main(){ //閉路を含まないグラフ ->閉路を探す ->DFS?(全部辿れそう)->どうやって閉路を探す? //閉路にはループがあるからそれを使えはよさそう? //始点まで戻ってこれるのが閉路を持つグラフ //連結かどうかを調べる必要はなさそう(与えられているので) //木でないなら一筆書きができる cin>>N>>M; U_V.resize(M); reached.assign(N+1,false); FOR(i,0,M){ cin>>U_V[i].first>>U_V[i].second; } //sort(all(U_V)); FOR(i,1,N+1){ if(!reached[i]){//各頂点を調べて、まだたどり着いていないなら closed = false; ++ans;//連結成分をカウント dfs(i);//頂点を始点に潜る if(closed) --ans;//連結成分に閉路があればカウントしない } } put(ans); } /* 5 6 1 2 1 3 1 4 1 5 2 3 4 5 */
Submission Info
Submission Time | |
---|---|
Task | B - バウムテスト |
User | ugis |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 1766 Byte |
Status | WA |
Exec Time | 4 ms |
Memory | 256 KB |
Judge Result
Set Name | Sample | All | ||||||
---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 100 | ||||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt |
All | subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt, subtask1_31.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
subtask0_sample_01.txt | AC | 1 ms | 256 KB |
subtask0_sample_02.txt | AC | 1 ms | 256 KB |
subtask0_sample_03.txt | AC | 1 ms | 256 KB |
subtask1_01.txt | AC | 1 ms | 256 KB |
subtask1_02.txt | AC | 1 ms | 256 KB |
subtask1_03.txt | AC | 1 ms | 256 KB |
subtask1_04.txt | AC | 1 ms | 256 KB |
subtask1_05.txt | AC | 1 ms | 256 KB |
subtask1_06.txt | AC | 1 ms | 256 KB |
subtask1_07.txt | WA | 1 ms | 256 KB |
subtask1_08.txt | WA | 1 ms | 256 KB |
subtask1_09.txt | AC | 1 ms | 256 KB |
subtask1_10.txt | AC | 1 ms | 256 KB |
subtask1_11.txt | AC | 1 ms | 256 KB |
subtask1_12.txt | AC | 1 ms | 256 KB |
subtask1_13.txt | WA | 1 ms | 256 KB |
subtask1_14.txt | AC | 1 ms | 256 KB |
subtask1_15.txt | WA | 1 ms | 256 KB |
subtask1_16.txt | AC | 1 ms | 256 KB |
subtask1_17.txt | WA | 1 ms | 256 KB |
subtask1_18.txt | WA | 1 ms | 256 KB |
subtask1_19.txt | WA | 1 ms | 256 KB |
subtask1_20.txt | WA | 1 ms | 256 KB |
subtask1_21.txt | AC | 1 ms | 256 KB |
subtask1_22.txt | WA | 1 ms | 256 KB |
subtask1_23.txt | AC | 1 ms | 256 KB |
subtask1_24.txt | AC | 1 ms | 256 KB |
subtask1_25.txt | AC | 1 ms | 256 KB |
subtask1_26.txt | WA | 1 ms | 256 KB |
subtask1_27.txt | WA | 1 ms | 256 KB |
subtask1_28.txt | WA | 1 ms | 256 KB |
subtask1_29.txt | AC | 4 ms | 256 KB |
subtask1_30.txt | AC | 4 ms | 256 KB |
subtask1_31.txt | AC | 1 ms | 256 KB |