Find them, Catch them(poj 1703)

Posted Cola

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Find them, Catch them(poj 1703)相关的知识,希望对你有一定的参考价值。

题目大意:

在这个城市里有两个黑帮团伙,现在给出N个人,问任意两个人他们是否在同一个团伙
输入D x y代表x于y不在一个团伙里
输入A x y要输出x与y是否在同一团伙或者不确定他们在同一个团伙里

思路:并查集

#include<cstdio>
#include<iostream>
#include<cstring>
#define M 100010
using namespace std;
int fa[M*2];
int find(int x)
{
    if(fa[x]==x)return x;
    return fa[x]=find(fa[x]);
}
void init()
{
    int n,m;
    scanf("%d%d",&n,&m);
    for(int i=1;i<=2*n;i++)
      fa[i]=i;
    for(int i=1;i<=m;i++)
    {
        char c;
        int x,y;
        cin>>c;
        scanf("%d%d",&x,&y);
        int a=find(x),b=find(y);
        int aa=find(x+n),bb=find(y+n);
        if(c==\'A\')
        {
            if(a==b)printf("In the same gang.\\n");
            else if(a==bb||b==aa)printf("In different gangs.\\n");
            else printf("Not sure yet.\\n");
        }
        else
        {
            fa[aa]=b;
            fa[bb]=a;
        }
    }
}
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        memset(fa,0,sizeof(fa));
        init();
    }
    return 0;
}
View Code

 

以上是关于Find them, Catch them(poj 1703)的主要内容,如果未能解决你的问题,请参考以下文章

POJ1703 Find them, Catch them

poj-1703-Find them, Catch them

poj 1703 Find them, Catch them

(POJ 1703)Find them, Catch them

[并查集] POJ 1703 Find them, Catch them

POJ 1703 Find them,Catch them