题意大致为找同性恋的虫子。。。。

这个比食物链要简单些。思路完全一致,利用取余操作实现关系之间的递推。

个人感觉利用向量,模和投影可能可以实现具有更加复杂关系的并查集。

 #include<iostream>
#include<cstdio>
using namespace std;
const int MAXN=;
int fa[MAXN];int rel[MAXN]; //rel[i]=0 代表与根节点同性,1代表异性
void _set(int a)
{
for(int i=;i<=a;i++)
{
fa[i]=i;
rel[i]=;
}
}
int _find(int a)
{
if(a==fa[a]) return fa[a];
int t=fa[a];
fa[a]=_find(fa[a]);
rel[a]=(rel[a]+rel[t])%;
return fa[a];
}
void _union(int x, int y)
{
int fx=_find(x);
// int fy=_find(y);
// fa[x]=fy;
//rel[fx]=(1+rel[y]-rel[x]+2)%2;
fa[fx]=y;
rel[fx]=-rel[x];
}
int main()
{
// freopen("in.txt","r",stdin);
// freopen("out.txt","w",stdout);
int cases,flag,num,inter,x,y,fx,fy;
scanf("%d",&cases);
for(int i=;i<=cases;i++)
{
scanf("%d %d",&num,&inter);
_set(num);
flag=;
for(int j=;j<=inter;j++)
{ scanf("%d %d",&x,&y);
fx=_find(x);
fy=_find(y);
if(fx==fy)
{
if(rel[x]==rel[y]) flag=;
}
else _union(x,y); }
printf("Scenario #%d:\n",i);
if(flag)
printf("Suspicious bugs found!\n");
else printf("No suspicious bugs found!\n");
printf("\n");
} return ;
}

poj 2492 a bug's life 简单带权并查集的更多相关文章

  1. poj 2492 A Bug's Life【带权并查集】

    就是给一个无向图判是否有奇环 用带权并查集来做,边权1表示连接的两个节点异性,否则同性,在%2意义下进行加法运算即可,最后判相同的时候也要%2,因为可能有负数 #include<iostream ...

  2. POJ 2492 A Bug's Life(带权并查集)

    题目链接:http://poj.org/problem?id=2492 题目大意:有n只虫子,m对关系,m行每行有x y两个编号的虫子,告诉你每对x和y都为异性,先说的是对的,如果后面给出关系与前面的 ...

  3. hdu 1829-A Bug's LIfe(简单带权并查集)

    题意:Bug有两种性别,异性之间才交往, 让你根据数据判断是否存在同性恋,输入有 t 组数据,每组数据给出bug数量n, 和关系数m, 以下m行给出相交往的一对Bug编号 a, b.只需要判断有没有, ...

  4. 【poj 1988】Cube Stacking(图论--带权并查集)

    题意:有N个方块,M个操作{"C x":查询方块x上的方块数:"M x y":移动方块x所在的整个方块堆到方块y所在的整个方块堆之上}.输出相应的答案. 解法: ...

  5. LA3027简单带权并查集

    题意:       有n个点,一开始大家都是独立的点,然后给出一些关系,a,b表示a是b的父亲节点,距离是abs(a-b)%1000,然后有一些询问,每次询问一个节点a到父亲节点的距离是多少? 思路: ...

  6. poj2492 A Bug's Life(带权并查集)

    题目链接 http://poj.org/problem?id=2492 题意 虫子有两种性别,有n只虫子,编号1~n,输入m组数据,每组数据包含a.b两只虫子,表示a.b为不同性别的虫子,根据输入的m ...

  7. (中等) POJ 1703 Find them, Catch them,带权并查集。

    Description The police office in Tadu City decides to say ends to the chaos, as launch actions to ro ...

  8. POJ 1984 Navigation Nightmare(二维带权并查集)

    题目链接:http://poj.org/problem?id=1984 题目大意:有n个点,在平面上位于坐标点上,给出m关系F1  F2  L  D ,表示点F1往D方向走L距离到点F2,然后给出一系 ...

  9. HDU 1829 A Bug's Life 【带权并查集/补集法/向量法】

    Background Professor Hopper is researching the sexual behavior of a rare species of bugs. He assumes ...

随机推荐

  1. iOS是最安全的?苹果iOS恶意软件数量增速首次超过Android

    之前小编还说Android系统似乎已经成为世界各地病毒作者的首选目标,但是近日一份安全研究报告让小编啪啪打脸. Skycure的移动安全报告显示,近三个季度内,在iOS上运行的恶意软件增加了2倍多,而 ...

  2. zTree学习实例

    今天做完一个zTree的实例,供有需要的学习! 效果图如下:

  3. ARM开发(1) 基于STM32的LED跑马灯

    一 跑马灯原理:  1.1 本实验实现2个led的跑马灯效果,即2个led交替闪烁.  1.2 实验思路:根据电路图原理,给led相关引脚赋予高低电平,实现电路的导通,使led灯发光.  1.3 开发 ...

  4. tensorflow 实现神经网络

    import tensorflow as tf import numpy as np # 添加层 def add_layer(inputs, in_size, out_size, activation ...

  5. 【CSS】整屏大背景

    1. 利用div的层次,设置底层div充满屏幕,并给div设置背景图 <div id="Layer1" style="position:absolute;top:0 ...

  6. 【HTML】table元素

    1.最简单的table <table> <tr> <th></th> </tr> <tr> <td></td& ...

  7. Python_网络爬虫(新浪新闻抓取)

    爬取前的准备: BeautifulSoup的导入:pip install BeautifulSoup4 requests的导入:pip install requests 下载jupyter noteb ...

  8. docker的简单应用(总结笔记)

    sudo docker pull ubuntu /*下载Ubuntu最新镜像*/sudo docker pull ubuntu:14.04 /*下载Ubuntu14.04版镜像*/sudo docke ...

  9. Hadoop(一)Centos7虚拟机网络配置

    Centos7虚拟机网络配置(桥接模式) 一 VirtualBox提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式). 1 桥接模式(br ...

  10. POJ3660 Cow Contest floyd传递闭包

    Description N (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participating in a programming con ...