1 条题解
-
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
信息
- ID
- 949
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者