一、题目回顾

题目链接:传送门

题意:给定n只虫子,不同性别的可以在一起,相同性别的不能在一起。给你m对虫子,判断中间有没有同性别在一起的。

二、解题思路

  • 种类并查集
  • 和poj1073的本质一样
  • 详见poj1073题解

大概思路:每得到一对虫子就判断下他们是否在同一个集合,并且他们的性别是否相同,如果相同则有同性恋,后面就算输入数据也不用做处理了,否则就一直处理下去。

三、代码

#include<cstdio>
#include<iostream>
using namespace std;
const int maxn = 100000+10; int pre[maxn]; //存父亲节点
int r[maxn]; //存与根节点的关系,0 代表同类, 1代表不同类
int T,n,m; void init()
{
for(int i=1;i<=n;i++){
pre[i] = i;
r[i] = 0;
}
} int find(int x)
{
if(x == pre[x]) return x;
int t = pre[x];
pre[x] = find(pre[x]);
r[x] = (r[x]+r[t])%2;
return pre[x];
} void unite(int x,int y)
{
int fx = find(x);
int fy = find(y);
pre[fx] = fy;
r[fx] = (r[x]+1+r[y])%2;
} int main()
{
scanf("%d",&T);
int kase = 1;
while(T--){
scanf("%d%d",&n,&m);
init();
int a,b,flag=0;
while(m--){
scanf("%d%d",&a,&b);
if(find(a)==find(b)){
if(r[a]==r[b]){
flag = 1;
}
}
else{
unite(a,b);
}
}
printf("Scenario #%d:\n",kase++);
if(flag==1) printf("Suspicious bugs found!\n\n");
else printf("No suspicious bugs found!\n\n");
}
return 0; }

最新文章

  1. 【模拟】POJ 3087
  2. 【转】 HTTP 协议简介
  3. FTP登录/目录破解
  4. position中多次用到了relative和absolute,能不能具体介绍一下这两者的区别?
  5. [转]Python文件操作
  6. android Thread和Runable区别,精讲(有疑问)
  7. Spring 使用注解方式进行事物管理
  8. 实战中总结出来的CSS常见问题及解决办法
  9. POJ 1961 Period KMP算法next数组的应用
  10. android:GLSurfaceView绘制bitmap图片及glViewport调整的效果
  11. java基础练习 2
  12. 不合法语句 self.contentView.frame.origin.x = x;
  13. Appcan开发笔记:结合JQuery的$.Deferred()完善批量异步发送
  14. 第十一章 泛型算法 C++ PRIMER
  15. An Easy Problem?!(细节题,要把所有情况考虑到)
  16. hadoop2.7.3+spark2.1.0+scala2.12.1环境搭建(3)http://www.cnblogs.com/liugh/p/6624491.html
  17. BZOJ_3132_上帝造题的七分钟_树状数组
  18. SqlServer&#160;操作&#160;JSON
  19. Springboot+ActiveMQ(ActiveMQ消息持久化,保证JMS的可靠性,消费者幂等性)
  20. IDEA中设置Tab多行显示、打开过多自动关闭的方法

热门文章

  1. linux简介及虚拟机安装
  2. oracle删除一个表内的重复数据,
  3. 开发的服务集群部署方案,以etcd为基础(java)
  4. POJ2823 滑动窗口
  5. [Git add . ] 遇到The file will have its original line endings in your working directory 解决办法
  6. sklearn fit transform fit_transform
  7. python学习——函数
  8. Str_turn
  9. spring配置jackson不返回null值
  10. SapScript