【解析】案例4-1.7 文件传输 (25 分)
立志用最少的代码做最高效的表达
当两台计算机双向连通的时候,文件是可以在两台机器间传输的。给定一套计算机网络,请你判断任意两台指定的计算机之间能否传输文件?
输入格式:
首先在第一行给出网络中计算机的总数 N (2≤N≤10^4),于是我们假设这些计算机从 1 到 N 编号。随后每行输入按以下格式给出:I c1 c2
其中I表示在计算机c1和c2之间加入连线,使它们连通;或者是C c1 c2
其中C表示查询计算机c1和c2之间能否传输文件;又或者是S
这里S表示输入终止。
输出格式:
对每个C开头的查询,如果c1和c2之间可以传输文件,就在一行中输出"yes",否则输出"no"。当读到终止符时,在一行中输出"The network is connected.“如果网络中所有计算机之间都能传输文件;或者输出"There are k components.”,其中k是网络中连通集的个数。
输入样例 1:
5
C 3 2
I 3 2
C 1 5
I 4 5
I 2 4
C 3 5
S
输出样例 1:
no
no
yes
There are 2 components.输入样例 2:
5
C 3 2
I 3 2
C 1 5
I 4 5
I 2 4
C 3 5
I 1 3
C 1 5
S
输出样例 2:
no
no
yes
yes
The network is connected.
暴力使用DFS必定超时。 并查集模板题
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
const int maxn = 1e4 + 5;
int pre[maxn]; //定义并查集数组 int find(int x) { return x == pre[x] ? x : pre[x] = find(pre[x]);
}void merge(int x,int y){int fx=find(x);int fy=find(y);if(fx > fy) pre[fx] = fy;else pre[fy] = fx;
}int main() {int n, x, y;char c; cin >> n;getchar();for(int i = 1; i <= n; i++) pre[i] = i; //1、初始化 while(cin >> c) {if(c == 'S') { //判断连通块 int ans = 0; for(int i = 1; i <= n; i++) {if(i == pre[i]) ans++; //如果是这样,说明是单独节点 }if(ans == 1) printf("The network is connected.\n");else printf("There are %d components.\n", ans);break;} else if(c == 'I') {scanf("%d%d", &x, &y);getchar();merge(x, y);} else if(c == 'C') {scanf("%d%d", &x, &y);getchar();if(find(x) == find(y)) printf("yes\n");else printf("no\n");}}return 0;
}
耗时
——泰山崩于前而色不变,麋鹿兴于左而目不瞬。
【解析】案例4-1.7 文件传输 (25 分)相关推荐
- 案例 7-1.3 寻找大富翁(25 分)
胡润研究院的调查显示,截至 2017 年底,中国个人资产超过 1 亿元的高净值人群达 15 万人.假设给出 N 个人的个人资产值,请快速找出资产排前 M 位的大富翁. 输入格式: 输入首先给出两个正整 ...
- linux安装sz rz_超级好用的文件传输命令rz与sz
做生物信息经常需要在本地客户端与服务器之间进行文件的传输,例如将要分析的数据传到Linux服务器上,进行分析,分析结束之后将结果下载到本地windows系统进行查看.以前我们都推荐大家使用比较稳定,并 ...
- 最快速的文件传输软件,解析镭速文件传输软件
想到每天都需要进行文件传输,就会烦躁,要是有一夸最快速的文件传输软件的话,这样就可以节省大量的时间了,那么针对于用户的这一个需求,我们来介绍一下镭速的文件传输软件,看是否是那么快,快到你难以置信. 文 ...
- Linux运维系列总结-Linux系统启动过程、WEB工作原理、DHCP工作原理、DNS解析原理、NFS网络文件系统、FTP文件传输协议、PXE+KICKSTART自动安装系统
Linux运维系列总结-Linux系统启动过程.WEB工作原理.DHCP工作原理.DNS解析原理.NFS网络文件系统.FTP文件传输协议.PXE+KICKSTART自动安装系统 1.Linux系统的启 ...
- MSN和QQ文件传输速度解析
基本上就是说msn传输文件是使用TCP,而QQ使用UDP,这就是两者传输速率的区别-- 发现很多情况下,msn传输文件比qq要慢,倒不是说msn没有快的时候,但是大部分的时候是真的比QQ慢,连我这种神 ...
- 卡尔曼滤波器推导与解析 - 案例与图片
李小铭 随笔- 5 文章- 2 评论- 13 </div><div id="mylinks"> 博客园 首页 新随笔 新文章 联系 管理 ...
- 网络协议从入门到底层原理(10)WebSocket、WebService、RESTful、HTTPDNS、FTP文件传输协议、邮件相关协议、IPv6
其他协议 WebSocket WebSocket - 建立连接 WebService RESTful HTTPDNS FTP文件传输协议 邮件相关的协议(SMTP.POP.IMAP) POP vs I ...
- Linux操作系统基础之文件传输
目录 一.实验环境的搭建 二.scp命令 三.rsync命令 1.rsync用法 四.文件的归档压缩 1.文件归档 2.文件压缩 3.文件的归档加压缩 一.实验环境的搭建 1.需要两台主机,并且保证两 ...
- FTP文件传输协议详解
简介:FTP是基于TCP协议之上的具有C/S架构的文件服务器. 需要通过控制连接20端口来控制双方的通信 需要通过数据连接21端口来进行双方的通信 主动模式:最大的特点是数据连接由服务器的20端口主动 ...
最新文章
- 创建Material Design风格的Android应用--使用Drawable
- 网络传输数据格式的选择
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(九)安装kafka_2.11-1.1.0
- Processing入门教程-Processing的“前世今生”
- 最新 MSDN Library for Visual Studio 2008 SP1
- 第四周作业wcPro
- fasttext 安装_fasttext的简单介绍
- anaconda 历史版本_【windows】下Anaconda详细安装过程
- html中超链接使用_干货 | HTML中表格的使用方法
- android window 半透明,popupWindow半透明背景
- Android开发之ProgressBar控件(实现加载动画与条形进度条)
- 菜鸟学习oracle
- 惠普打印机换硒鼓图解_hp硒鼓怎么安装 hp硒鼓安装方法这图文教程】
- 简简单单做股票读书笔记(1/8)
- 军犬舆情每日热点:台湾海峡发生6.2级地震;泉州通报碳九泄漏事件处理结果
- python 文件操作OS总结
- 重言式判别 (数据结构课程设计)
- 空间轨迹分析与应用(前言)Computing with Spatial Trajectories
- opencv Fast特征提取函数
- java外文资料_java外文文献(毕业设计).doc