标签:union title stream style 输入输出 main span put class
题意:题意:一个人请人吃饭,相互认识的朋友在一张桌子,相互认识的朋友的意思是如果A认识B,B认识C,那么A、B、C是朋友,对于每组输入输出桌子的张数。
代码:
#include<iostream> #include<cstdio> using namespace std; int a[1005]; int Find(int k){ if(a[k]!=k) a[k]=Find(a[k]); return a[k]; } int Union(int aa,int bb){ return a[aa]=bb; } int main(){ int T,n,m,x,y; cin>>T; while(T--){ int ans=0; cin>>n>>m; for(int i=1; i<=n; i++) a[i]=i; for(int i=1; i<=m; i++){ cin>>x>>y; int p=Find(x); int q=Find(y); if(p!=q) Union(p,q); } for(int i=1; i<=n; i++) if(a[i]==i) ans++; cout<<ans<<endl; } return 0; }
标签:union title stream style 输入输出 main span put class
原文地址:http://www.cnblogs.com/a-clown/p/6295523.html