- Victoria的舞会3
- 2016-08-19 07:48:05 @
我想知道这个程序对不对
#include<iostream>
#include <cstdio>
using namespace std;
int f[201], n, ans=0;
int getf(int v){
if(f[v]==v) return v;
else{
f[v]=getf(f[v]);
return f[v];
}
}
void merge(int v, int u){
int t1, t2;
t1=getf(v);
t2=getf(u);
if(t1!=t2)
f[t2]=t1;
}
int main(){
int i, t;
scanf("%d",&n);
for(i=1; i<=n; i++) f[i]=i;
for(i=1; i<=n; i++)
while (true){
scanf("%d",&t);
if (t==0) break;
merge(i, t);
}
for (i=1;i <=n;i++) if (f[i]==i) ans++;
printf("%d",ans);
}
0 条评论
目前还没有评论...