博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[kuangbin带你飞]专题五 并查集 J - A Bug's Life (带权并查集)
阅读量:4557 次
发布时间:2019-06-08

本文共 2288 字,大约阅读时间需要 7 分钟。

J - A Bug's Life

题目链接:

题目:

Background
Professor Hopper is researching the sexual behavior of a rare species of bugs. He assumes that they feature two different genders and that they only interact with bugs of the opposite gender. In his experiment, individual bugs and their interactions were easy to identify, because numbers were printed on their backs.
Problem
Given a list of bug interactions, decide whether the experiment supports his assumption of two genders with no homosexual bugs or if it contains some bug interactions that falsify it.
Input
The first line of the input contains the number of scenarios. Each scenario starts with one line giving the number of bugs (at least one, and up to 2000) and the number of interactions (up to 1000000) separated by a single space. In the following lines, each interaction is given in the form of two distinct bug numbers separated by a single space. Bugs are numbered consecutively starting from one.
Output
The output for every scenario is a line containing "Scenario #i:", where i is the number of the scenario starting at 1, followed by one line saying either "No suspicious bugs found!" if the experiment is consistent with his assumption about the bugs' sexual behavior, or "Suspicious bugs found!" if Professor Hopper's assumption is definitely wrong.
Sample Input
23 31 22 31 34 21 23 4
Sample Output
Scenario #1:Suspicious bugs found!Scenario #2:No suspicious bugs found!
Hint
Huge input,scanf is recommended.

题意:系(异性关系),然后发现这些条件中是否有悖论

思路:0是同类,1是异类,这里存在两种关系,形成一个环,故更新权值的时候要模2;

//// Created by hanyu on 2019/7/25.//#include 
#include
#include
#include
#include
using namespace std;const int maxn=50005;int father[maxn],value[maxn];int find(int x){ if(x!=father[x]) { int t=father[x]; father[x]=find(father[x]); value[x]=(value[x]+value[t])%2; } return father[x];}int main(){ int T; scanf("%d",&T); int k=0; while(T--) { int n,m; bool flag=false; scanf("%d%d",&n,&m); for(int i=0;i<=n;i++) { value[i]=0; father[i]=i; } int x,y; for(int i=0;i

 

转载于:https://www.cnblogs.com/Vampire6/p/11252390.html

你可能感兴趣的文章
PHP,javascript实现大文件上传
查看>>
c#图像处理算法学习
查看>>
webApi之FromUri和FromBody区别
查看>>
【SoapUI】http接口测试
查看>>
各种工具网站
查看>>
数据库事务
查看>>
xe7 控件升级
查看>>
TFrame bug
查看>>
刚学习的如何才能自信的拍美美的婚纱照呢(要结婚啦)
查看>>
M51文件注释
查看>>
关于临界资源访问互斥量的死锁问题
查看>>
django-view层
查看>>
异步加载JS的方法。
查看>>
golang-gorm框架支持mysql json类型
查看>>
【tool】白盒测试
查看>>
图论其一:图的存储
查看>>
20180923-WebService
查看>>
z变换
查看>>
Python - 静态函数(staticmethod), 类函数(classmethod), 成员函数
查看>>
Spring基础2
查看>>