/*
目大意:输入一个数t,表示测试组数。然后每组第一行两个数字n,m,n表示有n只昆虫,编号从1—n,m表示下面要输入m行交配情况,每行两个整数,表示这两个编号的昆虫为异性,要交配。
要求统计交配过程中是否出现冲突,即是否有两个同性的昆虫发生交配。思路:并查集将同性的昆虫放入集合之中,如果输入的昆虫u, v同时出现在了集合中,那么 u,v就是同性的!发生了同性交配的可能!
*/#include <string>
#include <cstdio>
#include <cstring>
#include <iostream>using namespace std;
int n, m;
int f[2010];
int  mark[2010];//mark[i]表示 与 i 交配的昆虫的编号!int getFather(int x){return x==f[x] ? x : f[x]=getFather(f[x]);
}void Union(int a, int b){int fa=getFather(a), fb=getFather(b);if(fa!=fb)f[fa]=fb;
}int main(){int t, cnt=0;scanf("%d", &t);while(t--){scanf("%d%d", &n, &m);for(int i=1; i<=n; ++i)f[i]=i;memset(mark, 0, sizeof(mark));int flag=1;while(m--){int u, v;scanf("%d%d", &u, &v);if(flag){if(getFather(u) == getFather(v)){flag=0;continue;}   if(!mark[u] && !mark[v]){mark[u]=v;mark[v]=u;}else if(!mark[u]){mark[u]=v;Union(u, mark[v]); //如果v配对了,u没有配对,那么u和mark[v]就是同性昆虫,放入集合之中}else if(!mark[v]){mark[v]=u;        Union(v,mark[u]);//,,,,,,}else{ Union(u, mark[v]);//如果之前u和v都已经配对,现在u和v进行配对, 那么u和mark[v]是同性, v和mark[u]是同性!Union(v, mark[u]);}}}printf("Scenario #%d:\n",++cnt);if (flag==1) printf("No suspicious bugs found!\n");elseprintf("Suspicious bugs found!\n");printf("\n");}
}

poj 2492A Bug's Life(并查集)相关推荐

  1. 食物链 POJ - 1182(带权并查集模板)

    动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃C,C吃A. 现有N个动物,以1-N编号.每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种. 有人用两种 ...

  2. poj 1456 Supermarket (贪心, 并查集)

    链接: http://poj.org/problem?id=1456 题目: Description A supermarket has a set Prod of products on sale. ...

  3. POJ 2236 Wireless Network (并查集)

    Wireless Network 题目链接: http://acm.hust.edu.cn/vjudge/contest/123393#problem/A Description An earthqu ...

  4. POJ 1611 The Suspects (并查集)

    文章作者:ktyanny 文章来源:ktyanny 转载请注明,谢谢合作. ktyanny:a的第一道并查集. 题目描述: 有很多组学生,在同一个组的学生经常会接触,也会有新的同学的加入.但是SARS ...

  5. POJ 1611 The Suspects (并查集)

    The Suspects 题目链接: http://acm.hust.edu.cn/vjudge/contest/123393#problem/B Description 严重急性呼吸系统综合症( S ...

  6. POJ 1944 Fiber Communications (枚举 + 并查集 OR 线段树)

    题意 在一个有N(1 ≤ N ≤ 1,000)个点环形图上有P(1 ≤ P ≤ 10,000)对点需要连接.连接只能连接环上相邻的点.问至少需要连接几条边. 思路 突破点在于最后的结果一定不是一个环! ...

  7. POJ-2492-A Bug's Life [并查集]

    题目传送门 题意: 每行两个数字,表示两个虫子相互喜欢,只有异性才能相互喜欢,所以求里面有没有基佬或者拉拉= =. 思路: 种类并查集,只有两种状态,父节点与自身性别相同,父节点与自身性别不同. 更新 ...

  8. (POJ - 1456)Supermarket(并查集)

    题目链接:1456 -- Supermarket 原题意比较难理解,下面我给出一个简化版的理解方式:超市里有n个商品.第i个商品必须在保质期(第di天及之前)卖掉,若卖掉可让超市获得pi的利润,但是每 ...

  9. POJ 1611 -The Suspects (并查集)

    题目 Description Severe acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, ...

最新文章

  1. C# Redis写入程序
  2. 周末一起用文本数据库玩玩Code First
  3. 求高光谱图像相关系数矩阵
  4. MVC常见的控制器,接口,数据层之间的操作
  5. JavaScript基础(三)
  6. c54x汇编语言程序设计,第5章 apos;C54x汇编语言程序设计.doc
  7. Nginx为什么会比Apache Httpd高效
  8. 1.3寸OLED 12864 sh1106带中文字库液晶屏介绍
  9. 小米qq音乐|小米音乐qq版
  10. 脊柱外科病人资料管理系统的界面设计分析(2)--JOA评分记录的实现
  11. bzoj5369: [PKUSC2018]最大前缀和 (状压dp)
  12. 生活,人艰不拆,各种躺枪
  13. python mp3转wav_python 录音,WAV转MP3
  14. 计算机硬件与哪些部分组成部分,计算机硬件组成及各部分功能有哪些?
  15. 带你初步了解基因表达调控
  16. 软件:股票小助手/盯盘小助手!
  17. 中国成为论文发表数量第一的国家
  18. 搭建博客、自己的小窝?快来看看这些开源静态网站生成器
  19. IM开发者的零基础通信技术入门(二):通信交换技术的百年发展史(下)
  20. php 判断数组值为空,PHP判断数组是否为空的五种常用方法

热门文章

  1. 智慧旅游建设方案_智慧灯杆及智慧交通设施建设方案
  2. 安装mysql 10055_Can’t connect to MySQL server on ‘localhost’ (10055) | 学步园
  3. ubuntu root默认密码(初始密码)
  4. java面试-深入理解JVM(一)——JVM内存模型
  5. SQL Server 2016 查询存储性能优化小结
  6. Bootstrap3 栅格系统-媒体查询
  7. Mirror--如何在主库上增加文件
  8. Photoshop CS5
  9. 2021.04.07 oppo HR面
  10. 常用数学符号读法大全