1 solutions
-
0
C++ :
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int map[210][210], father[210]; int main() { // freopen("a.txt","r",stdin); int n, i, j, k, x; while(cin >> n) { memset(map,0,sizeof(map)); for(i = 1; i <= n; ++ i) while(scanf("%d",&x),x) map[i][x] = 1; for(k = 1; k <= n; ++ k) for(i = 1; i <= n; ++ i) for(j = 1; j <= n; ++ j) if(map[i][k] && map[k][j]) map[i][j] = 1; for(i = 1; i <= n; ++ i) father[i] = i; for(i = 1; i <= n; ++ i) for(j = 1; j <= n; ++ j) if(map[i][j]) father[j] = father[i]; int cnt = 0; for(i = 1; i <= n; ++ i) if(father[i] == i) cnt ++; cout << cnt << endl; } return 0; }
- 1
Information
- ID
- 16443
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By