为什么并查集不能求单向图?
P2835 刻录光盘这题
#include<iostream>
using namespace std;
int parent[1145],ans;
int find(int x)
{
if(x!=parent[x]) parent[x]=find(parent[x]);
return parent[x];
}
int main()
{
int i,j,t,n;
cin>>n;
for(i=1;i<=n;i++) parent[i]=i;
for(i=1;i<=n;i++)
{
while(1)
{
cin>>t;
if(t==0) break;
j=find(i);
if(j!=t)
{
parent[t]=j;
}
}
}
for(i=1;i<=n;i++)
{
if(i==find(i)) ans++;
}
cout<<ans;
return 0;
}