题目大意:
输入一个数t,表示测试组数。然后每组第一行两个数字n,m,n表示有n只昆虫, 编号从1—n,m表示下面要输入m行交配情况,每行两个整数,表示这两个编号的昆虫为异性,要交配。 要求统计交配过程中是否出现冲突,即是否有两个同性的昆虫发生交配。
[输入输出]: [样例]:
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!
分析:
一道并查集的练习题。将所有虫子分到两个集合中,公的一个集合,母的一个集合,读入一对信息时,判断它们是不是属于同一集合,是则发生同性恋.
import java.util.Scanner;
public class Main{
private int n;
private int m;
private int father[];
private int other[]; //other[x]表示x的另一半是谁
private int x[];
private int y[];
private boolean mark;
public Main(int n,int m,int[] x,int[] y){
this.n=n;
this.m=m;
this.x=x;
this.y=y;
father=new int[n+1];
other=new int[n+1];
for(int i=0;i<n+1;i++){
father[i]=i;
other[i]=0;
}
mark=false;
}
private int Find_Set(int x){
int k,root;
root=x;
while(root!=father[root]) //循环找x的根
root=father[root];
while(x!=root)//本循环修改查找路径中的所有节点使其指向根节点---压缩
{
k=father[x];
father[x]=root;//指向根节点
x=k;
}
return x;
}
private void Union(int x,int y){
int fx=Find_Set(x);
int fy=Find_Set(y);
father[fx]=fy;
}
public void go(int d){
int fx,fy,xl,yl;
for(int l=1;l<=m;l++){
xl=x[l];
yl=y[l];
if(!mark){
fx=Find_Set(xl);
fy=Find_Set(yl);
if(fx==fy){//出现同性恋
mark=true;
break;
}else{//没出现同性恋,合并。公的在一个集合,母的在另一个集合
if(other[xl]!=0){
Union(other[xl],yl);
} else if(other[yl]!=0){
Union(other[yl],xl);
} else {
other[xl]=yl;
other[yl]=xl;
}
}
}
}
System.out.println("Scenario #"+d+":");
if(mark)
System.out.println("Suspicious bugs found!");
else
System.out.println("No suspicious bugs found!");
System.out.println();
}
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int t,n,m;
int[] x;
int[] y;
t=in.nextInt();
for(int d=1;d<=t;d++){
n=in.nextInt();
m=in.nextInt();
x=new int[m+1];
y=new int[m+1];
for(int l=1;l<=m;l++){
x[l]=in.nextInt();
y[l]=in.nextInt();
}
Main ma=new Main(n,m,x,y);
ma.go(d);
}
}
}
代码是AC了(POJ2492),差一点超时,以上代码是10976954_AC_9516MS_15372K.java,
大家有兴趣的,帮分析分析吧!
分享到:
相关推荐
昆虫动物识别是一个涵盖生物分类学、生态学以及计算机视觉技术的综合领域。在这个领域中,主要目标是通过各种方法来准确地识别不同种类的昆虫和动物。以下将详细阐述相关知识点: 1. 生物分类学:这是生物学的一个...
1、YOLO昆虫检测数据集,1000多张使用lableimg标注软件,标注好的真实场景的高质量图片数据,图片格式为jpg,标签有两种,分别为VOC格式和yolo格式,分别保存在两个文件夹中,可以直接用于YOLO系列的昆虫目标检测;...
《昆虫检测数据集YOLO8:深度学习在昆虫识别中的应用》 YOLO(You Only Look Once)是一种基于深度学习的目标检测算法,以其实时性、高效性和准确性在计算机视觉领域得到了广泛应用。标题中的"昆虫检测数据集YOLO8...
在提供详细的IT知识之前,需要澄清一点,尽管文档标题和描述提到了山东农业大学以及园艺昆虫学,但实际上,所提供的内容涉及的主要是园艺昆虫学的一些基础知识和概念,并不直接关联IT知识。以下是根据文档内容生成的...
从给定的文件信息中,我们可以提炼出一系列关于昆虫分类及结构特征的重要知识点,这些知识点不仅涉及昆虫的基本解剖学,还包括昆虫的行为习性、生态角色以及分类学的基础原理。 ### 昆虫分类与命名原则 1. **拉丁...
2. **昆虫主题**:模板设计中融入了大量的昆虫图像和元素,如昆虫插图、图标等,旨在营造一个与昆虫相关的视觉环境,吸引昆虫爱好者和专业人士的注意。 3. **HTML模板**:该模板基于HTML语言构建,意味着它具有良好...
资源昆虫的开发与利用是一个涵盖多个领域的综合性主题,涉及到生物学、农业、化学、医药和经济等多个学科。资源昆虫指的是那些可以被人类利用,具有显著经济价值的昆虫群体,包括它们的分泌物、排泄物、体内物质或...
数据集介绍 提供了217张图片, 包含6种昆虫,分别是acuminatus armandi boerner coleoptera leconte linnaeus。 包含了图片和标注。训练集:验证集:测试集=7:2:1
【森林昆虫学实习报告】 森林昆虫学是一门深入研究森林生态系统中昆虫的生物学特性、生态行为、种群动态以及它们与森林环境、植物之间相互作用的学科。本次实习是森林昆虫学专业课程的重要组成部分,旨在让学生将...
本文主要探讨了一种基于深度学习的轻量化田间昆虫识别及分类模型,旨在解决田间昆虫识别的复杂性和类别样本不平衡导致的误识率高、效率低的问题。该模型采用了轻量化的深度学习算法,结合图像预处理技术,实现了对...
【标题】:昆虫繁殖问题 在生物学领域,昆虫繁殖问题是一项重要的研究课题,因为它涉及到生态系统的稳定、物种的延续以及农业害虫的控制。昆虫作为地球上最多样化的动物类群,其繁殖方式和策略有着丰富的多样性。这...
每年在昆虫学或实验室中产生数千亿只昆虫。 这些昆虫被饲养起来作为害虫防治计划的饲料,用于生产各种产品(例如纺织品和食品),用于研究和教育以及许多目的。 在此提出了一个概念,即期望饲养条件能够模拟衍生目标...
在准备816普通昆虫学的考研过程中,考生需要对昆虫的分类、生物学特性、生态学原理、昆虫生理学、昆虫行为学、昆虫遗传学、昆虫病理学以及昆虫与人类的关系等方面有深入的理解。这些知识点通常会以选择题、填空题、...
《昆虫生理生化学讲稿》概述了昆虫生理生化学这一领域的基本概念、历史发展和重要研究内容。昆虫生理生化学是专门研究昆虫生理学和生化学的学科,它以多种昆虫为模型,揭示昆虫生理机制和生化过程,如变态、脱皮、...
昆虫生态及预测预报复习资料.pdf 以下是根据提供的文件信息生成的相关知识点: 一、生态学基本概念 * 生态学是研究动物与其他生物的和非生物的环境总关系的科学。 * 昆虫生态学是生态学重要分支科学,是以昆虫为...
昆虫繁殖问题
华南农业大学树木园昆虫多样性研究是一个关于昆虫学领域的生态学研究,主要通过实地调查与数据分析对华南农业大学树木园的昆虫多样性进行了深入探讨。研究者通过采集标本,并用不同的生物多样性指数对昆虫进行了分类...
昆虫是地球上数量最多的生物,约占所有动物物种的66%,是几乎所有类型的有机物的良好分散者和剥削者,几乎在任何地方都可以发现,构成了每个生态系统的重要组成部分,并且至关重要在我们的食品供应链中提供有价值...