[FZYZOJ 1038] 隧道

P1038 -- 隧道

时间限制:1000MS      内存限制:65536KB

Description

一座小镇正在着手建造自己的地铁线路网。小镇坐落在许多小岛上,小岛之间通过隧道或者桥梁连接。地铁就在这些已有的桥梁和隧道的基础上建成。由于地铁主要是在地下,所以桥梁用得越少越好。小镇的居民希望能够仅通过地铁就能在任意两座小岛之间往返旅行。幸运的是,我们有足够多的隧道和桥梁来满足这个要求,所以不需要建造新的隧道或桥梁。你的任务是计算需要构建这样一个地铁线路网最少需要用到几座桥梁。

Input Format

输入包括K+M+1行,第一行包括三个数:N(1≤N≤10000),K(1≤K≤12000),M(1≤M≤12000)。其中N为小岛数量,K为隧道数量,M为桥梁数量,以下K行每行有两个数,表示相应的隧道连接的小岛的编号,再往下M行每行用同样的方式描述一座桥梁。

Output Format

输出仅包括一个数,即最少需要用到的桥梁数。

Sample Input

6 3 4
1 2
2 3
4 5
1 3
3 4
4 6
5 6

Sample Output

2

【题解】

本题,其实有很多地方是无用的:

“幸运的是,我们有足够多的隧道和桥梁来满足这个要求”

这句话保证了,我们肯定能够将这些小岛联通。

那么,我们只要并查集搞定隧道,然后再找出有几个根,即可搞定了,根本不需要读入m和后面的桥梁。

代码如下:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int pre[10010],r[10010];
 4 int findset(int x){
 5     int r=x;
 6     while(pre[r]!=r) r=pre[r];
 7     int i=x,j;
 8     while(i!=r) {
 9         j=pre[i];
10         pre[i]=r;
11         i=j;
12     }
13     return r;
14 }
15 int main() {
16     int n,k;
17     scanf("%d%d%*d",&n,&k);
18     for (int i=1;i<=n;++i) pre[i]=i;
19     while(k--) {
20         int a,b,f1,f2;
21         scanf("%d%d",&a,&b);
22         f1=findset(a);
23         f2=findset(b);
24         if(f1!=f2) pre[f1]=f2;
25     }
26     int cnt=0;
27     for (int i=1;i<=n;++i) if(pre[i]==i) cnt++;
28     printf("%d\n",cnt-1);
29     return 0;
30 }
View Code

 

转载于:https://www.cnblogs.com/TonyNeal/p/fzyzoj1038.html

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

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

相关文章

音创ktv点歌系统服务器,音创ktv点歌系统家庭版

光行资源网为用户提供的音创ktv点歌系统电脑版是为ktv和家庭影院专门设计打造的点歌软件&#xff0c;相信很多朋友们都去过ktv点歌&#xff0c;大家点歌时的界面就是专门的点歌系统。特色1、方便性&#xff1a;安装调试简单方便&#xff0c;减少了您购买后所带来的多种维护烦恼…

7极限精简版64位_DNF:国服更新64位客户端深度体验,真的有如此丝滑吗?

DNF最新最快资讯&#xff0c;最全最细攻略&#xff0c;尽在骑乌龟的蜗牛12年&#xff0c;地下城的游戏客户端终于获得了升级&#xff0c;从32位更新到了64位&#xff0c;关于更新带来的游戏好处大家应该都在很多地方看过&#xff0c;而国服正式服也终于在8.20版本的更新中将客户…

MYSQL BENCHMARK函数的使用

MYSQL BENCHMARK函数是最重要的函数之一&#xff0c;下文对该函数的使用进行了详尽的分析&#xff0c;如果您对此感兴趣的话&#xff0c;不妨一看。 下文为您介绍的是MYSQL BENCHMARK函数的语法&#xff0c;及一些MYSQL BENCHMARK函数相关问题的测试&#xff0c;供您参考学习。…

服务器无法通过系统非页面共享区进行分配,服务器无法通过系统非页面共享区来进行分配的解决方法...

服务器开始阶段性的出现死机状态了。隔一段时间就无法连接了。重启后正常&#xff0c;过一段时间又是同样的问题。事件查看器中有大量的同样报错&#xff1a;事件ID&#xff1a;2020描述&#xff1a;服务器无法通过系统页面共享区来进行分配&#xff0c;因为共享区当前是空的。…

iou画 yolov3_专栏 | 【从零开始学习YOLOv3】4. YOLOv3中的参数进化

原标题&#xff1a;专栏 | 【从零开始学习YOLOv3】4. YOLOv3中的参数进化前言&#xff1a;YOLOv3代码中也提供了参数进化(搜索)&#xff0c;可以为对应的数据集进化一套合适的超参数。本文建档分析一下有关这部分的操作方法以及其参数的具体进化方法。1. 超参数YOLOv3中的 超参…

ORACLE中的异常处理

异常的语法格式 在begin语句内&#xff1a; exception when then when then when others then --异常处理 --首先创建一份对象的用法 create type xtype as object (name varchar2(20)); declare x xtype; begin x.name:aaa; exception when ACCESS_INTO_NULL then dbms_…

文件已经上传到服务器翻译,服务器接受上传的优化 翻译+源码分析

一般的做法err : r.ParseMultipartForm(32 << 20) // 32Mbif err ! nil {http.Error(w, err.Error(), http.StatusBadRequest)}问题请注意&#xff0c;32Mb是分配给请求体的字节存储在内存中&#xff0c;而不是请求体的限制&#xff0c;当满(33Mb)时&#xff0c;它将写入…

隐藏a标签seo_让黑帽都惊了,远离百度惩处的seo技术

一、什么是黑帽SEO黑帽SEO&#xff0c;即SEO作弊&#xff0c;是指为了提高网站在搜索引擎中展现机会和排名的目的&#xff0c;欺骗搜索引擎的行为“黑帽”技术与搜索引擎算法相排斥&#xff0c;是搜索引擎不允许的。一旦被发现使用“黑帽”技术&#xff0c;那么网站排名会被降低…

前端学习(1501):一次帮别人解决问题的案例

超开心 只能添加姓名 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </…

PHP的time函数返回时间不正确

PHP的time()得到的时间与当前时间相差很多&#xff0c;检查了PHP.ini&#xff0c;发现是时区不对。在PHP.ini中&#xff0c;当前设置为&#xff1a; [Date]; Defines the default timezone used by the date functions; http://php.net/date.timezonedate.timezone Europe/Par…

微信小程序服务器sessionid,微信小程序sessionid不一致问题解决

微信小程序sessionid不一致问题解决,里加,两次,在后面,解决办法,缓存微信小程序sessionid不一致问题解决易采站长站&#xff0c;站长之家为您整理了微信小程序sessionid不一致问题解决的相关内容。问题由于小程序端两次请求的 sessionid 不一致&#xff0c; 导致后端无法取得 s…

mysql 加字段_MySQL8.0大表秒加字段,是真的吗?

前言&#xff1a;很早就听说 MySQL8.0 支持快速加列&#xff0c;可以实现大表秒级加字段。笔者自己本地也有8.0环境&#xff0c;但一直未进行测试。本篇文章我们就一起来看下 MySQL8.0 快速加列到底要如何操作。1.了解背景信息表结构的变更是业务运行过程中比较常见的需求之一&…

SQLServer学习笔记系列4

一.写在前面的话 好多天没有记录sql学习笔记了&#xff0c;要坚持下去&#xff0c;坚信每一点的进步都是为在积蓄力量。今天看到一幅图&#xff0c;特此分享出来。 通过这幅图&#xff0c;我看到的是每人站在自己的角度看问题&#xff0c;感受是不一样的&#xff0c;就如同学习…

随便选一张扑克牌_扑克牌魔术手法教学,简单易学的纸牌魔术,三分钟让你成为大师...

标签&#xff1a; 魔术手法 扑克牌魔术 魔术技巧教学 纸牌魔术揭秘所有的纸牌魔术家都知道怎样假装把一张牌塞进牌堆&#xff0c;然后从顶部翻出来来让观众吃惊。这个技巧用来练习手速、手指灵敏度、适时分散观众注意力和表演艺术绝对是不可或缺。这里就给大家介绍一下吧&#…

JAVA求集合中的组合

好几个月没弄代码了&#xff0c;今天弄个求组合的DEMO 思路是将集合的每个值对照一个索引&#xff0c;索引大小是集合的大小2.索引默认为[000...000]&#xff0c;当组合后选取的组合值demo为[0100..00]。然后根据遍历索引来到集合中取值。 上代码&#xff1a; import java.util…

mysql使用手册_mysql使用手册

mysql使用手册1、mysql登录1.1 远程登陆mysqlmysql -h ip -u root -p 密码1.2 本地登陆mysqlmysql -u root -p 密码2、为数据库配置远程连接权限采用授权法例如&#xff1a;以用户名&#xff1a;root 密码&#xff1a;888888从任何主机连接到mysql服务器先在服务器上用root用户…

Android项目使用Eclipse进行单元测试

Android项目如果每次都整个调试的话&#xff0c;要加载UI&#xff0c;会等很长时间。所以单元测试就显得很方便了。 要进行单元测试&#xff0c;首先得修改下AndroidManifest.xml文件。在Instrument标签里点右侧的Add按钮。然后在弹出的窗口双击 Instrument。然后在右侧就会多出…

mysql union 用法 update_mysql---union的用法

union的作用很简单用来合并两条sql的结果集语法: SQL1 UNION SQL2现有一张价格表要求&#xff1a;求出价格低于2000和价格高于3000的商品&#xff0c;不能用or和not between……and思路&#xff1a;我们可以先求出低于2000的商品得到结果集1再求出高于3000的商品得到结果集2再利…