犯罪团伙(并查集)
#include<iostream> using namespace std; int a[1010]; int x,y; int temp; int main() { int n,m; cin>>n>>m; for(int i=1;i<=n;i++) { a[i]=i; } for(int i=1;i<=m;i++) { cin>>x>>y; temp=a[y]; for(int j=1;j<=n;j++) { if(a[j]==temp) { a[j]=a[x]; } } } int ans=0; for(int i=1;i<=n;i++) { if(i==a[i]) { ans++; } } cout<<ans; return 0; } //11 //8 //1 2 //4 3 //5 4 //1 3 //5 6 //7 10 //5 10 //8 9