poj-1703 Find them, Catch them---带权值的并查集

来源:互联网 发布:青年人休闲鞋推荐 知乎 编辑:程序博客网 时间:2024/05/18 04:49

。。。

和 poj 1182 食物链 差不多。。

http://blog.csdn.net/u010489389/article/details/9321583

#include<stdio.h>#include<string.h>int n,m;int f[100010];int d[100010];int root(int p){if(f[p]==-1) return p;else{int fa=f[p];f[p]=root(f[p]);d[p]=(d[p]+d[fa])%2;return f[p];}}void merge(int a,int b){int aa=root(a);int bb=root(b);f[aa]=bb;d[aa]=(d[b]-d[a]+1)%2;}int main(){int t;scanf("%d",&t);int i,j,k;int a,b;char ch[5];while(t--){scanf("%d%d",&n,&m);memset(f,-1,sizeof(f));memset(d,0,sizeof(d));while(m--){scanf("%s%d%d",ch,&a,&b);if(ch[0]=='A'){if(root(a)!=root(b))printf("Not sure yet.\n");else{if(d[a]==d[b])printf("In the same gang.\n");elseprintf("In different gangs.\n");}}else{if(root(a)!=root(b))merge(a,b);}}}}


原创粉丝点击