# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1024948 | 2024-07-16T13:05:06 Z | gs25 | Conspiracy (POI11_kon) | C++17 | 1231 ms | 131072 KB |
#include <bits/stdc++.h> using namespace std; const int MAXN = 5010; int adj[MAXN][MAXN]; int scc[MAXN]; int deg[MAXN]; int n; /* if(adj[i][j]==0){ g[i].push_back(j+n); rg[j+n].push_back(i); } else{ g[i+n].push_back(j); rg[j].push_back(i+n); } */ bool vis[MAXN*2]; stack<int> st; void dfs(int i){ if(vis[i]) return; vis[i] = 1; if(i<=n){ for(int j=1; j<=n; j++) if(j!=i && !adj[i][j] && !vis[j+n]) dfs(j+n); } else { for(int j=1; j<=n; j++) if(j!=i-n && adj[i-n][j] && !vis[j]) dfs(j); } st.push(i); } void dfs1(int i, int pv){ if(vis[i]) return; vis[i] = 1; scc[i] = pv; if(i<=n){ for(int j=1; j<=n; j++) if(j!=i && adj[i][j] && !vis[j+n]) dfs1(j+n,pv); } else { for(int j=1; j<=n; j++) if(j!=i-n && !adj[i-n][j] && !vis[j]) dfs1(j,pv); } /* for(auto ne:rg[i]){ if(!vis[ne]) dfs1(ne,pv); } */ } int main(void){ ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); cin >> n; int a = 0; for(int i=1; i<=n; i++){ int x; cin >> x; a+=x; while(x--){ int j; cin >> j; adj[i][j] = 1; } } if(a==0 || a== n*(n-1)){ cout << n; return 0; } for(int i=1; i<=n*2; i++) if(!vis[i]) dfs(i); for(int i=1; i<=n*2; i++) vis[i] = 0; int pv = 0; while(!st.empty()){ int t = st.top(); st.pop(); if(!vis[t]) dfs1(t,pv++); } vector<int> c, nc; for(int i=1; i<=n; i++){ if(scc[i]==scc[i+n]) { cout << 0; return 0; } if(scc[i]<scc[i+n]) nc.push_back(i); else c.push_back(i); } assert(c.size()!=0 && nc.size()!=0); for(auto x : c){ //cerr << x << " "; for(auto y : nc){ if(adj[x][y]) deg[x]++, deg[y]++; } } int ans = 1; for(auto n1 : c) if(deg[n1]==0) ans++; for(auto n1 : nc) if(deg[n1]==c.size()) ans++; for(auto n : c){ for(auto nn : nc){ int p = deg[n] - (int)adj[n][nn], q = deg[nn] - (int)adj[n][nn]; if(p==0 && q==c.size()-1) ans++; } } cout << ans; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 0 ms | 348 KB | Output is correct |
4 | Correct | 0 ms | 348 KB | Output is correct |
5 | Correct | 0 ms | 348 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 1 ms | 348 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 860 KB | Output is correct |
2 | Correct | 1 ms | 604 KB | Output is correct |
3 | Correct | 1 ms | 604 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 860 KB | Output is correct |
2 | Correct | 2 ms | 1372 KB | Output is correct |
3 | Correct | 1 ms | 1116 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 1368 KB | Output is correct |
2 | Correct | 3 ms | 1884 KB | Output is correct |
3 | Correct | 2 ms | 1372 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 16 ms | 12124 KB | Output is correct |
2 | Correct | 45 ms | 14672 KB | Output is correct |
3 | Correct | 161 ms | 30036 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 23 ms | 15448 KB | Output is correct |
2 | Correct | 64 ms | 21496 KB | Output is correct |
3 | Correct | 214 ms | 41100 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 84 ms | 37200 KB | Output is correct |
2 | Correct | 140 ms | 39508 KB | Output is correct |
3 | Correct | 338 ms | 61564 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 169 ms | 79008 KB | Output is correct |
2 | Correct | 311 ms | 80720 KB | Output is correct |
3 | Correct | 763 ms | 131072 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 872 ms | 131072 KB | Output is correct |
2 | Correct | 538 ms | 121684 KB | Output is correct |
3 | Correct | 1231 ms | 131072 KB | Output is correct |
4 | Correct | 1137 ms | 131072 KB | Output is correct |
5 | Correct | 1 ms | 344 KB | Output is correct |