ZOJ-2833Friendship(简单并查集)
2015-07-24 11:24
309 查看
//查找这个人又多少个朋友,必须从他的祖先开始查,num[find(a)];
AC代码:
AC代码:
#include<stdio.h> #define max 100005 int p[max]; int num[max]; char s[max]; int a,b; int find(int k) { if(p[k]!=k) { p[k]=find(p[k]); num[k]+=num[p[k]]; } return p[k]; } int bing(int x,int y) { int x1=find(x); int y1=find(y); if(x1==y1) { return 0; } p[y1]=x1; num[x1]+=num[y1]; return 1; } int main() { int m,n; int k=1; int o=0; while(scanf("%d%d",&m,&n)!=EOF&&m) { int i,j; if(o) { printf("\n"); } o=1; for(i=1;i<=max;i++) { p[i]=i; num[i]=1; } printf("Case %d:\n",k++); for(i=0;i<n;i++) { scanf("%s",s); if(s[0]=='M') { scanf("%d%d",&a,&b); bing(a,b); } if(s[0]=='Q') { scanf("%d",&a); printf("%d\n",num[find(a)]); } } } return 0; }
相关文章推荐
- 手势简单应用
- uep开发——财务管理系统的总结
- BroadcastReceiver(广播)
- [leetcode-10]Regular Expression Matching(C)
- 06-2. 字符串字母大小写转换(10)
- hdu 4547 CD操作 LCA倍增算法
- 云计算、HANA支撑业务双位数增长
- iOS7 imageWithContentsOfFile 问题
- cocos2dx-3.1 接入多盟广告sdk+Android (2)
- Git在Android Studio上的运用
- .NET常用异常类
- 归档反归档
- 暑假NOIP笔记—图论(上)
- NoSql数据库的分类
- 弹框CSS、JS
- 黑马程序员——Java中的String类总结
- C#excel、sql sever批量数据的导入导出
- mybatis 参数为String,if test读取该参数
- 写一篇日志
- Deep Learning in NLP (一)词向量和语言模型