当前位置: 首页 > ds >正文

A Bug's Life

sex保存异性,(a,b)    同性的在一个集合,a一定和sex[b]是同性的,b一定和sex[a]是同性的。

Problem Description
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
2
3 3
1 2
2 3
1 3
4 2
1 2
3 4
Sample Output
Scenario #1:
Suspicious bugs found!Scenario #2:
No suspicious bugs found!
Hint
Huge input,scanf is recommended.
 
Source
TUD Programming Contest 2005, Darmstadt, Germany
Recommend
linle


#include<iostream>
using namespace std;
int bugs[4004];
int sex[2002];
bool isfind=false;
void init(int n)
{
for(int i=1;i<=n;i++)
{
  bugs[i]=-1;
  sex[i]=0;
 
}
isfind=false;


 
}
int parent(int a)
{
   while(bugs[a]>0)
   {
   
     a=bugs[a];
   }
   return a;




}


void combine(int a,int b)
{
   int p1=parent(a);
   int p2=parent(b);
   if(p1!=p2)
   {
      if(bugs[p1]>bugs[p2])
 {
   bugs[p1]=p2;
bugs[p2]--;
 
 
 }
 else
 {
    bugs[p2]=p1;
bugs[p1]--;
 
 }
   
   }






}
void equal(int a,int b)
{
   int p1=parent(a);
   int p2=parent(b);
   if(p1==p2)
   {
  isfind=true;
   return;
   }
  
  if(sex[a])combine(sex[a],b);
  if(sex[b])combine(sex[b],a);
  sex[a]=b;
  sex[b]=a;




}
int main()
{
//freopen("in.txt","r",stdin);
int n;
scanf("%d",&n);
int icase=1;
while(n--)
{
printf("Scenario #%d:\n",icase++);
   int num,inter;
scanf("%d%d",&num,&inter);
init(num);
for(int i=1;i<=inter;i++)
{
 int a,b;
 scanf("%d%d",&a,&b);
 
 
 if(!isfind)
 {
equal(a,b);
 
 }
 else{
   continue;
 
 }

}
if(isfind)
{
 printf("Suspicious bugs found!\n");

}
else
{
 printf("No suspicious bugs found!\n");
}
 
    printf("\n");
 



}
   return 0;
}

http://www.xdnf.cn/news/11849.html

相关文章:

  • ubuntu下firefox使用HTML 5播放器看B站
  • 图解MySQL连接(最详细,看完包会!), join 大合集
  • 【漏洞复现】金和OA-C6-SQL注入-MailTemplates
  • 微信不显示该聊天怎么恢复?4个步骤快速解决
  • 键盘DIY一个指纹识别
  • 不要一个人吃饭( Never Eat Alone)--打造成功交际
  • Ps:历史记录画笔工具
  • 三十二、http与www服务介绍
  • 武林外传私服服务器制作,自己修改的YY朱武林外传服务端+架设工具+完整补丁...
  • WWW2020 GNN的一些总结 PPT
  • linux桌面系统之家,Ubuntu下载_Ubuntu Desktopi386标准下载14.10 - 系统之家
  • 操作系统期末总复习(4)——分析题【常考8道】
  • SQL 触发器
  • R.A.D窗口
  • Autohotkey学习笔记
  • 耶鲁大学 博弈论(Game Theory) 笔记1
  • 音视频矩阵有哪些功能?
  • MATLAB | 全网最详细网络图(图论图)绘制教程
  • Windows Server 2003 SP2 企业版 ISO 下载
  • 木子李
  • 移动设备 小米2S不显示CD驱动器(H),便携设备,MTP,驱动USB Driver,MI2感叹号的解决方法...
  • 电脑技巧:分享六个背景音乐素材下载网站,值得收藏
  • 域名状态及其意义
  • AdapterView 的基本使用情况
  • 田维经典语录(一)
  • Windows XP with sp3简体中文 VOL 微软原版
  • 关于Windows Mobile连接不上电脑的问题的解决方法
  • W ndows7旗舰版RTM,Windows 7 RTM Build各版ISO详细介绍
  • wow达拉然发礼物机器人_魔兽世界43种经典变身道具获取方法
  • 大连话