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;
}

### Python 3.7 Compatible Setuptools Version Setuptools is a collection of enhancements to the Python distutils that allow developers to more easily build and distribute Python packages, especially ones that have dependencies on other packages. For Python 3.7 compatibility, it's essential to use an appropriate version of setuptools. The first version of setuptools officially supporting Python 3.7 was **setuptools v39.0.0**, which introduced support for this specific Python release[^1]. However, newer versions are recommended as they include bug fixes, performance improvements, and additional features while maintaining backward compatibility with Python 3.7 until its end-of-life date (June 27, 2023). To ensure proper installation or upgrade of setuptools compatible with Python 3.7: ```bash pip3.7 install --upgrade setuptools==44.1.1 ``` This command installs one of the last stable releases before changes were made incompatible with older setups like those using Python 3.7 without requiring modern wheel formats supported only by later interpreters post-Python 3.8+ environments[^2]. For users who prefer compiling from source rather than relying solely upon precompiled binaries via package managers such as `pkg`, following steps similar to configuring during compilation can help manage custom installations effectively when specifying prefixes ensures no interference occurs between multiple coexisting python versions within system directories /usr/local/python3 context mentioned earlier[^3]: ```bash wget https://github.com/pypa/setuptools/archive/v44.1.1.tar.gz tar -xzf v44.1.1.tar.gz cd setuptools-44.1.1/ python3.7 setup.py install --prefix=/usr/local/python3 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值