zoj_2833

发布时间:2016-12-8 8:13:35 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"zoj_2833",主要涉及到zoj_2833方面的内容,对于zoj_2833感兴趣的同学可以参考一下。

直接用并查集。对于输出需要注意空格问题,一开始在纠结怎么输出,然后参考了zxy_snow 输出。 #include <stdio.h> #include <iostream> #include <string.h> using namespace std; int fri[100010]; int find(int x) { int s=x; while(fri[x]>0) x=fri[x]; while(s!=x) { int t=fri[s]; fri[s]=x; s=t; } return s; } void Union(int x,int y) { int r1=find(x); int r2=find(y); if(r1!=r2) { int temp=fri[r1]+fri[r2]; if(fri[r1]>fri[r2])//xiaoshu { fri[r1]=r2; fri[r2]=temp; } else { fri[r2]=r1; fri[r1]=temp; } } } int main() { int n,m; int t=0; //freopen("1.txt","r",stdin); while(~scanf("%d%d",&n,&m)&&n) { if(t) printf("\n"); t++; printf("Case %d:\n",t); for(int i=1;i<=n;i++) fri[i]=-1; while(m--){ char s[2]; scanf("%s",s); if(s[0]=='M') { int a,b; scanf("%d%d",&a,&b); Union(a,b); } else { int x; scanf("%d",&x); printf("%d\n",-fri[find(x)]); }} } return 0; }

上一篇:PowerPoint
下一篇:CSS定义及使用

相关文章

关键词: zoj_2833

相关评论