0
已解决
江见匀
新手光能
新手光能
最后一个也wa
#include<iostream>
using namespace std;
int n,fa[10001],cnt;
void init(){
for(int i=1;i<=n;i++) fa[i]=i;
}
int find(int x){
if(fa[x]==x) return fa[x];
return fa[x]=find(fa[x]);
}
void unit(int x,int y){
x=find(x);
y=find(y);
if(x==y) return ;
fa[x]=y;
return ;
}
bool same(int x,int y){
return find(x)==find(y);
}//并查集
int main(){
cin>>n;
init();
for(int i=1,a;i<=n;i++){
while(1){
cin>>a;
if(a!=0) unit(a,i);
if(a==0) break;
}
}
for(int i=1;i<=n;i++) if(fa[i]==i) cnt++;
cout<<cnt;
return 0;
}
为哈?