http://acm.hdu.edu.cn/showproblem.php?pid=1829

http://poj.org/problem?id=2492

臭虫有两种性别,并且只有异性相吸,给定n条臭虫(编号1-n)和m对关系,判断是否是出现同性恋的情况。

这题跟食物链的题类似,这里只有两种关系,关系是同性或者异性。

对于每只动物创建两个元素  同性或异性,并用这 2×n个元素建立并查集。

首先判断输入的x和y是否是一个组的。是就flag=1.

然后,如果x和y是一对,那么合并x和y+n,x+n和y。

 #include <cstdio>
const int maxn = ;
int par[*maxn]; void init(int n)
{
for(int i=;i<=n;i++)
par[i]=i;
} int find(int x)
{
return x==par[x]?x:par[x]=find(par[x]);
} void unite(int x,int y)
{
x=find(x);
y=find(y);
if(x!=y) par[x]=y;
} int main()
{
//freopen("a.txt","r",stdin);
int t,n,m,a,b,j=;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
init(n*);
bool flag=;
for(int i=;i<m;i++)
{
scanf("%d%d",&a,&b);
if(find(a)==find(b)) flag=;
else
{
unite(a+n,b);
unite(a,b+n);
}
}
printf("Scenario #%d:\n",j++);
if(flag) printf("Suspicious bugs found!\n");
else printf("No suspicious bugs found!\n");
printf("\n");
}
return ;
}

http://poj.org/problem?id=1703

给你两个罪犯,判断他们是否属于同一帮派,输入n个罪犯和m条关系,n个罪犯中至少有一个属于帮派Dragon,有一个属于  帮派Snake,m条关系中A表示询问着两个人是否属于同一帮派,D表示这两个人不属于同一帮派。

这题思路跟上面一样,但开始wa了几次,对并查集的理解还是不够深。

定义并查集为:并查集里的元素i-x表示i属于帮派x(这里面有3种关系,要么是同一帮派,要么是不同帮派,要么是不能确定。)同一个并查集的元素同时成立。

初始化并查集为 2*N,如果i表示属于帮派A,那么i+N表示属于帮派B,输入两个元素不在同一帮派的时候,就合并两个帮派的元素。

这题跟上面两题一样,都是不确定元素i属于集合A还是集合B,所以要保留所有的可能性。

 #include <cstdio>
const int maxn = ;
int par[maxn*]; void init(int n)
{
for(int i=;i<=n;i++)
{
par[i]=i;
}
} int find(int x)
{
return x==par[x]?x:par[x]=find(par[x]);
} void unite(int x,int y)
{
x=find(x);
y=find(y);
if(x!=y)
{
par[x]=y;
}
} int main()
{
// freopen("a.txt","r",stdin);
int t,n,m,a,b;
char s[];
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
init(n*);
for(int i=;i<m;i++)
{
scanf("%s%d%d",s,&a,&b);
if(s[]=='A')
{
if(find(a)==find(b)) printf("In the same gang.\n");
else if(find(a)==find(b+n)) printf("In different gangs.\n"); //这里开始没想到 唉
else printf("Not sure yet.\n");
}
else if(s[]=='D')
{
unite(a,b+n);
unite(a+n,b);
}
}
}
return ;
}

hdu - 1829 A Bug's Life (并查集)&&poj - 2492 A Bug's Life && poj 1703 Find them, Catch them的更多相关文章

  1. hdu 5458 Stability(树链剖分+并查集)

    Stability Time Limit: 3000/2000 MS (Java/Others)    Memory Limit: 65535/102400 K (Java/Others)Total ...

  2. [HDU 3712] Fiolki (带边权并查集+启发式合并)

    [HDU 3712] Fiolki (带边权并查集+启发式合并) 题面 化学家吉丽想要配置一种神奇的药水来拯救世界. 吉丽有n种不同的液体物质,和n个药瓶(均从1到n编号).初始时,第i个瓶内装着g[ ...

  3. hdu 1829 A Bug's Life(并查集)

                                                                                                    A Bu ...

  4. hdu 1829 &amp;poj 2492 A Bug&#39;s Life(推断二分图、带权并查集)

    A Bug's Life Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) To ...

  5. HDU 1829/POJ 2492 A Bug's Life

    A Bug's Life Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  6. hdu 5652 India and China Origins 并查集

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5652 题目大意:n*m的矩阵上,0为平原,1为山.q个询问,第i个询问给定坐标xi,yi,表示i年后这 ...

  7. HDU 5458 Stability (树链剖分+并查集+set)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5458 给你n个点,m条边,q个操作,操作1是删边,操作2是问u到v之间的割边有多少条. 这题要倒着做才 ...

  8. hdu 4619 Warm up 2(并查集)

    借用题解上的话,就是乱搞题.. 题意理解错了,其实是坐标系画错了,人家个坐标系,我给当矩阵画,真好反了.对于题目描述和数据不符的问题,果断相信数据了(这是有前车之鉴的hdu 4612 Warm up, ...

  9. hdu 5441 Travel 离线带权并查集

    Travel Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5441 De ...

随机推荐

  1. Linux sort --copy

    Source: http://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html sort是在Linux里非常常用的一个命令,管排序的,集中 ...

  2. mysql 重置root 账户密码

    windows: 打开命令行窗口,停止mysql服务:        Net stop mysql启动mysql,一般到mysql的安装路径,找到 mysqld-nt.exe <<< ...

  3. 【BZOJ】【3171】【TJOI2013】循环格

    网络流/费用流 最后能走回出发点……说明全部是环= = 而二分图上的环说明什么呢……完备匹配 对于每个点,它都有四个可能的匹配点,且已知它已经(伪)匹配的一个点,那么我们于已知每条(伪)匹配边,我们连 ...

  4. 7-Highcharts曲线图之分辨带

    <!DOCTYPE> <html lang='en'> <head> <title>7-Highcharts曲线图之分辨带</title> ...

  5. DSP中的cmd文件

    一.CMD文件 链接命令文件(Link Command Files),以后缀.cmd结尾,简称CMD文件. CMD文件的两大功能是指示存储空间和分配段到存储空间. 在编写CMD文件时,主要采用MEMO ...

  6. UML类图(转载)

    概述: 类图是静态图.它代表了一个应用程序的静态视图.类图不仅用于可视化描述和记录系统的不同方面,但也为构建可执行代码的软件应用程序. 类图描述一类的属性和操作,也对系统的约束.被广泛应用于类图的建模 ...

  7. 一个有趣的Ajax Hack示范

    今天在梦之光芒的BLOG上看见了一个Ajax Hack示范,其实跨站发现很容易,但是要做到大危害还是很难,偷偷COOKIE什么的只针对用户而已,XSS WORM的那种利用才是可怕的. 来看看他的一段V ...

  8. POJ 3279

    Fliptile Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 3062   Accepted: 1178 Descript ...

  9. java编译错误:varargs 方法的非 varargs 调用

    转自:http://www.blogjava.net/ideame/archive/2007/03/23/105849.html 警告: 最后一个参数使用了不准确的变量类型的 varargs 方法的非 ...

  10. 李洪强漫谈iOS开发[C语言-004]-开发概述程序设计语言程序编译过程

    汇编语言 指令用特定的名字来标记,这就是汇编语言 人比较容易看懂汇编语言 汇编直接和程序一一对应的 有汇编器把程序翻译成机器码 把高级语言编译成计算机识别的语言 程序编译过程 命令行 UNIX 系统中 ...