poj1703 种类并查集
2014-03-06 19:38
309 查看
种类并查集,比poj1182水
#include <iostream> #include <cstring> using namespace std; const int N=100005; int father ; int rank ; int n,m; void init() { memset(rank,0,sizeof(rank)); for (int i=0;i<=100000;i++) father[i]=i; } int find(int x) { if (x==father[x]) return x; int t=father[x]; father[x]=find(father[x]); rank[x]=(rank[x]+rank[t])%2; return father[x]; } void Union(int a,int b) { int x=find(a); int y=find(b); if (x==y) return ; father[y]=x; rank[y]=(rank[a]+rank[b]+1)%2; } int main() { int T; scanf("%d",&T); while (T--) { scanf("%d%d",&n,&m); init(); char d; int a,b; for (int i=1;i<=m;i++) { cin>>d; scanf("%d%d",&a,&b); if (d=='D') Union(a,b); if (d=='A') { if (find(a)==find(b)) { int x=rank[a]; int y=rank[b]; if (x==y) cout<<"In the same gang."<<endl; else cout<<"In different gangs."<<endl; } else cout<<"Not sure yet."<<endl; } } } return 0; }
相关文章推荐
- Object C——自学笔记(1)
- redis 扩展安装使用
- Ehcache配置文件的详细说明
- Ext.Net 复制GridPanel的数据
- C#richTextBox1保存txt文档
- (CF)C. Inna and Huge Candy Matrix
- 反转链表
- (补)第一周 日期结构体
- hdu 1712ACboy needs your help 01背包(分组)
- 将Activity设置成半透明的对话框
- 视图和视图解析器---15.4.7: 输出XML
- oracle 11g 使用物化视图远程增量刷新数据
- 带标签的break和continue语句
- JAVA高新技术——代理
- 微信营销完全手册の订阅号运营
- openglel2.0下载
- java封装类(二)
- java使用jsp servlet来防止csrf 攻击的实现方法
- 视图和视图解析器---15.4.6: PDF
- Sensor、TP、Button & 5250