hdu 1213 How Many Tables(并查集)
2014-08-06 21:02
260 查看
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int num[1010]; int find(int x){//找父节点 if(x==num[x]) return x; else num[x]=find(num[x]); //压缩路径 return num[x]; } void join(int x,int y){//合并 int fx=find(x); int fy=find(y); if(fx!=fy){ num[fx]=fy; } } int main(){ int t,n,m,i,j,s,a,b; scanf("%d",&t); while(t--){ memset(num,0,sizeof(num)); scanf("%d%d",&n,&m); for(i=1;i<=n;i++){//初始化 num[i]=i; } for(i=0;i<m;i++){ scanf("%d%d",&a,&b); join(a,b);//添加 } for(s=0,i=1;i<=n;i++){ if(i==num[i]) s++;//如果i是num[i]的父节点,则i没有朋友 } printf("%d\n",s); } return 0; }
相关文章推荐
- HDU 1213 How Many Tables(并查集)
- HDU 1213 How Many Tables【并查集】
- hdu 1213 How Many Tables(并查集)
- HDU 1213 How Many Tables(并查集)
- HDU-1213-How Many Tables【并查集】
- HDU:1213 How Many Tables(简单并查集)
- HDU 1213 How Many Tables -- 并查集
- HDU 1213 How Many Tables(并查集)
- hdu 1213 (How Many Tables)(简单的并查集,纯模板)
- D - How Many Tables 【hdu 1213 并查集】
- HDU - 1213 How Many Tables(并查集)
- hdu1213 How many tables 并查集
- HDU 1213 How Many Tables [并查集]
- HDU 1213 How Many Tables (并查集炒鸡入门题)
- hdu杭电1213 How Many Tables【并查集】
- hdu 1213 How Many Tables(并查集的简单应用)
- hdu 1213 How Many Tables(并查集练习)
- HDU1213 How Many Tables(基础并查集)
- HDU1213 How Many Tables(简单的并查集)
- HDU 1213 How Many Tables 并查集