poj 2492A Bug's Life(并查集)

 1 /*
 2 目大意:输入一个数t,表示测试组数。然后每组第一行两个数字n,m,n表示有n只昆虫,编号从1—n,m表示下面要输入m行交配情况,每行两个整数,表示这两个编号的昆虫为异性,要交配。
 3 要求统计交配过程中是否出现冲突,即是否有两个同性的昆虫发生交配。
 4 
 5 思路:并查集
 6    将同性的昆虫放入集合之中,如果输入的昆虫u, v同时出现在了集合中,那么 u,v就是同性的!发生了同性交配的可能!
 7 */
 8 
 9 #include <string>
10 #include <cstdio>
11 #include <cstring>
12 #include <iostream>
13 
14 
15 
16 using namespace std;
17 int n, m;
18 int f[2010];
19 int  mark[2010];//mark[i]表示 与 i 交配的昆虫的编号!
20 
21 int getFather(int x){
22    return x==f[x] ? x : f[x]=getFather(f[x]);
23 }
24 
25 void Union(int a, int b){
26     int fa=getFather(a), fb=getFather(b);
27     if(fa!=fb)
28        f[fa]=fb;
29 }
30 
31 int main(){
32    int t, cnt=0;
33    scanf("%d", &t);
34    while(t--){
35       
36           scanf("%d%d", &n, &m);
37           for(int i=1; i<=n; ++i)
38           f[i]=i;
39       memset(mark, 0, sizeof(mark));
40       int flag=1;
41       while(m--){
42              int u, v;
43          scanf("%d%d", &u, &v);
44          if(flag){
45             if(getFather(u) == getFather(v)){
46                flag=0;
47                            continue;
48              }   
49                         if(!mark[u] && !mark[v]){
50                    mark[u]=v;
51                    mark[v]=u;
52                  }
53                 else if(!mark[u]){
54                    mark[u]=v;
55                    Union(u, mark[v]); //如果v配对了,u没有配对,那么u和mark[v]就是同性昆虫,放入集合之中
56             }
57                  else if(!mark[v]){
58                    mark[v]=u;        
59                    Union(v,mark[u]);//,,,,,,
60                 }
61                else{ 
62                   Union(u, mark[v]);//如果之前u和v都已经配对,现在u和v进行配对, 那么u和mark[v]是同性, v和mark[u]是同性!
63               Union(v, mark[u]);
64                }
65          }
66       }
67       printf("Scenario #%d:\n",++cnt);
68         if (flag==1) 
69             printf("No suspicious bugs found!\n");
70         else
71             printf("Suspicious bugs found!\n");
72         printf("\n");
73    }
74 }

 

转载于:https://www.cnblogs.com/hujunzheng/p/3892002.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531804.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 有外键 怎么插入数据_外键约束的表怎么插入数据

有外键的情况应该先添加主表数据&#xff0c;再添加副表数据。如&#xff1a;有以下两张表班级表&#xff1a;CLASSID NAME1 一班2 二班学生表&#xff1a;SID NAME CLASSID1 张三 12 李四 13 王五 2其中学生表中的CLASSID是班级表CLASSID的外键。现在要求在学生表中添加一条SI…

计算机在岗位上的应用,计算机岗位应用论文.doc

计算机岗位应用论文计算机岗位应用论文计算机岗位应用论文计算机岗位应用论文计算机岗位应用论文进入到新世纪以来,随着我国国民经济水平的提升,我国的计算机也得到了迅速的发展,计算机应用技术也已经广泛的应用到了各个行业中,并且计算机应用技术对于促进这些行业的快速发展也…

poj1703Find them, Catch them(并查集以及路径压缩)

1 /*2 题目大意&#xff1a;有两个不同的黑帮&#xff0c;开始的时候不清楚每个人是属于哪个的&#xff01;3 执行两个操作4 A a, b回答a, b两个人是否在同一帮派&#xff0c;或者不确定5 D a, b表示a, b两个人不在同一个帮派6 7 思路&#xff1a;利用并查集将相同帮…

计算机课程word教学,Word教学方法及使用技巧

Word教学方法及使用技巧来源:用户上传作者: 李志爱【摘 要】Word是一款实用的、简单的具有编辑、排版、处理各种表格与图片等功能的文字处理软件。本文就教学中会采用的一些Word的教学方法进行了简单的介绍与分析&#xff0c;并以泰山版初中计算机的教学计划为例&#xff0c;重…

poj2186Popular Cows(Kosaraju算法--有向图的强连通分量的分解)

1 /*2 题目大意&#xff1a;有N个cows, M个关系3 a->b 表示 a认为b popular&#xff1b;如果还有b->c, 那么就会有a->c 4 问最终有多少个cows被其他所有cows认为是popular&#xff01;5 6 思路&#xff1a;强连通分量中每两个节点都是可达的&#xff…

yum删除mysql数据库_MySQL数据库之Centos中彻底删除Mysql(rpm、yum安装的情况)

本文主要向大家介绍了MySQL数据库之Centos中彻底删除Mysql(rpm、yum安装的情况) &#xff0c;通过具体的内容向大家展现&#xff0c;希望对大家学习MySQL数据库有所帮助。我用的centos6&#xff0c;mysql让我整出了各种问题&#xff0c;我想重装一个全新的mysql&#xff0c;yum…

计算机视觉领域常见期刊和会议,计算机视觉领域常见期刊和会议

会议&#xff1a;ICCV&#xff1a; IEEE International Conference on Computer Vision(每两年举办一次&#xff0c;由IEEE主办&#xff0c;百度百科&#xff1a;https://baike.baidu.com/item/iccv/7054436?fraladdin&#xff0c;ICCV 2017&#xff1a;http://iccv2017.thecv…

mysql怎么新增_mysql怎么新增用户

匿名用户1级2018-01-27 回答展开全部首先以root身份登录到MySQL服务器中。$ mysql -u root -p当验证提示出现的时候&#xff0c;输入MySQL的root帐号的密码。创建一个MySQL用户使用如下命令创建一个用户名和密码分别为"myuser"和"mypassword"的用户。mysql…

江西财经大学计算机排名2019,2019年全国商科院校评价报告出炉 江西财经大学排名第七...

中国江西网/江西头条新闻客户端讯 记者郑周贇报道&#xff1a;6月5日&#xff0c;江西财经大学应用统计研究中心发布了2019年全国商科院校评价报告&#xff0c;江西财经大学在46所指标数据完整的商科院校中综合得分排名第七。该报告权衡了指标的完备性和可获得性&#xff0c;确…

Uvaoj10054 - The Necklace

1 /*2 题意&#xff1a;打印欧拉回路&#xff01;3 思路&#xff1a;开始时不明白&#xff0c;dfs为什么是后序遍历&#xff1f; 4 因为欧拉回路本身是一条回路&#xff0c;那么我们在dfs时&#xff0c;可能存在提前找到回路&#xff0c;这条回路可能不是欧拉回路&…

w7计算机应用放大按键,Win7窗口最大化和最小化快捷键是什么

Win7窗口最大化和最小化快捷键是什么Win7有很多快捷键&#xff0c;你都知道多少呢&#xff1f;今天小编给大家科普的是win7窗口最大化和最小化快捷键&#xff0c;下面就一起来了解看看吧&#xff01;Windows 键 方向键“↑”使当前使用的窗口最大化。Windows 键 方向键“↓”…

s7-1200跟mysql_让西门子S7-1200直接连接MySQL数据库!!!

最近项目上有个需求&#xff0c;要把采集的数据存储到数据库中&#xff0c;当前西门子有很多方法&#xff0c;必读IDB&#xff0c;还有通过WINCC的脚本&#xff0c;第三方的软件等等&#xff0c;但是随着发展&#xff0c;有些需求希望设备直接到数据库&#xff0c;比如云端的RD…

uva oj 567 - Risk(Floyd算法)

1 /*2 一张有20个顶点的图上。3 依次输入每个点与哪些点直接相连。4 并且多次询问两点间&#xff0c;最短需要经过几条路才能从一点到达另一点。5 6 bfs 水过7 */8 #include<iostream>9 #include<cstring> 10 #include<vector> 11 #include<cstdio> 12…

10034 - Freckles 克鲁斯克尔最小生成树!~

1 /*2 10034 - Freckles3 克鲁斯克尔最小生成树&#xff01;&#xff5e; 4 */5 #include<iostream>6 #include<cstdio>7 #include<cmath>8 #include<algorithm>9 using namespace std; 10 11 struct node{ 12 double x, y; 13 }; 14 15 struct t…

win7个人计算机的ip地址,win7计算机ip地址查询_win7本机ip地址查询

2016-12-09 11:40:21查找计算机的ip地址的方法&#xff1a;点击你的电脑桌面左下角的“开始”找到“运行”点击运行, 在出现的对话框里面输入“cmd” 点击确定然后就会出现一个黑色的命令行窗口,你会看到“&...2016-12-19 15:59:44手机设置静态IP 1、点设置-线网络 2、WLAN…

最全的mysql 5.7.13_最全的mysql 5.7.13 安装配置方法图文教程(linux) 强烈推荐!

linux环境Mysql 5.7.13安装教程分享给大家&#xff0c;供大家参考&#xff0c;具体内容如下1系统约定安装文件下载目录&#xff1a;/data/softwareMysql目录安装位置&#xff1a;/usr/local/mysql数据库保存位置&#xff1a;/data/mysql日志保存位置&#xff1a;/data/log/mysq…

iis 日志 post数据_云原生日志的趋势(1):logscape和logiq

作为日志产品的PM&#xff0c;跟进国内外日志产品动向是个长期工作。这几天翻新一些历史记录&#xff0c;发现logscape自2017年开源以来&#xff0c;突然2019年10月又更新了一会。于是顺着翻翻logscape的github账号&#xff0c;起了兴致来写点文字。https://github.com/logscap…

Uvaoj 10048 - Audiophobia(Floyd算法变形)

1 /*2 题目大意&#xff1a;3 从一个点到达另一个点有多条路径&#xff0c;求这多条路经中最大噪音值的最小值&#xff01; 、4 5 思路&#xff1a;最多有100个点&#xff0c;然后又是多次查询&#xff0c;想都不用想&#xff0c;Floyd算法走起&#xff01; 6 …

南通大学计算机系本二,2012年南通大学计算机科学与技术学院江苏省内第二批本科(院校代码:1301)...

第二批本科(院校代码&#xff1a;1301)序号专 业 名 称学制科类计划数1汉语言文学(师范)四文科552汉语言文学(高级文秘)四文科803广播电视新闻学四文科304对外汉语四文科285历史学(师范)四文科306思想政治教育(师范)四文科207社会工作四文科258行政管理四文科459公共事业管理四…

大学计算机基础总结,大学计算机基础第二章总结

数&#xff1a;计算机的数据的基本形态是二进制数数制&#xff1a;可以直接进行数学计算数字码制&#xff1a;用来表示不同对象属性● 数制(计数体制)多位数中每一位的构成方法以及实现从低位到高位的进位规则(也叫做进制)▲ 常用数制&#xff1a;R进制有R个数码&#xff0c;数…