hdu 1232
以前写的.....拿出来看看....
并查集模板:
#include <iostream> #include <string> using namespace std; int f[10000]; int find(int x) { if(f[x]==0) return x; return f[x]=find(f[x]); } int bing(int a,int b) { if(find(a)!=find(b)) f[find(a)]=find(b); } int main() { int m,n,i; while(cin>>n>>m){ for(i=1;i<=n;i++) f[i]=0; int x,y; while(m--) { cin>>x>>y; bing(x,y); } for(i=1;i<=n;i++) cout<<f[i]<<" "; cout<<endl; } }
//hdu 1232
//这个是用并查集写出来的,两个函数,f数组其实就是一个标记的作用,五个对象就五个元素,然后可以打印出来每个对象和哪个有关系。。。