思路:当a,b的根节点find(a)与find(b)不同时,就直接将这两个数连接起来。由于每个树的根节点的kind值一定为0,所以,对于a,b的kind值相同,我们就讲其中一个根的kind值变为1,当下次再遍历该节点的时候,a与b的kind值就会变得不同。如果a,b的kind值相同,那么就不用变。

看代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define Maxn 20010
using namespace std;
int set[Maxn],kind[Maxn];
int find(int x)
{
if(x!=set[x])
{
int temp=set[x];
set[x]=find(set[x]);
kind[x]=(kind[x]+kind[temp])%;//保证子节点与父节点的不同。
}
return set[x];
}
int merg(int a,int b)
{
int x,y;
x=find(a);
y=find(b);
if(x==y)
{
if(kind[a]==kind[b])
return ;
return ;
}
set[x]=y;
kind[x]=(kind[a]-kind[b]+)%;
return ;
}
int main()
{
int n,m,i,j,a,b,t,Case=,flag=;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
for(i=;i<=n;i++)
set[i]=i;
flag=;
memset(kind,,sizeof(kind));
for(i=;i<=m;i++)
{
scanf("%d%d",&a,&b);
if(!merg(a,b))
{
flag=;
break;
}
}
for(i++;i<=m;i++)
scanf("%d%d",&a,&b);
if(flag)
printf("Scenario #%d:\nSuspicious bugs found!\n\n",++Case);
else
printf("Scenario #%d:\nNo suspicious bugs found!\n\n",++Case);
}
return ;
}

poj 2492 并查集的更多相关文章

  1. POJ 2492 并查集扩展(判断同性恋问题)

    G - A Bug's Life Time Limit:10000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u S ...

  2. POJ 2492 并查集应用的扩展

    A Bug's Life Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 28651 Accepted: 9331 Descri ...

  3. POJ 2492 并查集 A Bug's Life

    #include<iostream> #include<algorithm> #include<stdio.h> #include<string.h> ...

  4. poj 1984 并查集

    题目意思是一个图中,只有上下左右四个方向的边.给出这样的一些边, 求任意指定的2个节点之间的距离. 就是看不懂,怎么破 /* POJ 1984 并查集 */ #include <stdio.h& ...

  5. poj 1797(并查集)

    http://poj.org/problem?id=1797 题意:就是从第一个城市运货到第n个城市,最多可以一次运多少货. 输入的意思分别为从哪个城市到哪个城市,以及这条路最多可以运多少货物. 思路 ...

  6. POJ 3228 [并查集]

    题目链接:[http://poj.org/problem?id=3228] 题意:给出n个村庄,每个村庄有金矿和仓库,然后给出m条边连接着这个村子.问题是把所有的金矿都移动到仓库里所要经过的路径的最大 ...

  7. poj 1733 并查集+hashmap

    题意:题目:有一个长度 已知的01串,给出多个条件,[l,r]这个区间中1的个数是奇数还是偶数,问前几个是正确的,没有矛盾 链接:点我 解题思路:hash离散化+并查集 首先我们不考虑离散化:s[x] ...

  8. poj 3310(并查集判环,图的连通性,树上最长直径路径标记)

    题目链接:http://poj.org/problem?id=3310 思路:首先是判断图的连通性,以及是否有环存在,这里我们可以用并查集判断,然后就是找2次dfs找树上最长直径了,并且对树上最长直径 ...

  9. POJ 3657 并查集

    题意: 思路: 1.二分+线段树(但是会TLE 本地测没有任何问题,但是POJ上就是会挂--) 2.二分+并查集 我搞了一下午+一晚上才搞出来----..(多半时间是在查错) 首先 如果我们想知道这头 ...

随机推荐

  1. Spring Autowiring by Constructor

    In Spring, "Autowiring by Constructor" is actually autowiring by Type in constructor argum ...

  2. Lucene:信息检索与全文检索

    目录 信息检索的概念 信息检索技术的分类 全文检索与数据库查询对比 全文检索工具一般由三部分构成 全文检索中建立索引和进行检索的流程 索引里面究竟存什么 如何创建索引 如何对索引进行检索 Lucene ...

  3. The plot Function in matlab

    from http://pundit.pratt.duke.edu/wiki/MATLAB:Plotting The plot Function The plot function is used t ...

  4. 【转】WPF颜色相关操作

        using System.Windows.Media; 1.String转换成Color Color color = (Color)ColorConverter.ConvertFromStri ...

  5. java递归简易应用教程

    package com.xiaohao.test; import java.util.ArrayList;import java.util.List;import java.util.Locale;i ...

  6. 【转】2013年中国IT业10大公司

    转自:http://www.chinaz.com/news/2013/1217/331446.shtml?zyy 1.最得志的公司:小米 在2013年,再没有一家公司像小米这样志得意满,即便看看所有的 ...

  7. 三分钟掌握 JUnit3.0

    曾经公司做过一个.net的项目,在项目开发的过程中.我们採用的是分层的开发方式,大家先在一起讨论接口, 然后讨论完以后,形成文档,然后依照文档进行开发!这样就有一个问题,你必需要保证你的接口是正确的. ...

  8. Android无法生成R文件的终极解决办法

    R文件如果在clean项目(Project—>Clean)和 Fix Project Properties(如下图):   如果在第一步无法解决的的时候,那可能原因就是资源文件调用的错误,比如资 ...

  9. [WebGL] Setting Up WebGL

    In this lesson we cover setting up WebGL for use, including creating a canvas, getting the WebGL ren ...

  10. iOS开发——动画篇Swift篇&常用动画总结

    UIView动画: UIView动画时最基本的动画,是直接对我们界面上控件进行简单的动画效果实现,如果你只需要用到一些简单的效果,那么这个很适合你,关于UIView动画实现恨简单, UIKit直接将动 ...