立志用最少的代码做最高效的表达


当两台计算机双向连通的时候,文件是可以在两台机器间传输的。给定一套计算机网络,请你判断任意两台指定的计算机之间能否传输文件?

输入格式:
首先在第一行给出网络中计算机的总数 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 分)相关推荐

  1. 案例 7-1.3 寻找大富翁(25 分)

    胡润研究院的调查显示,截至 2017 年底,中国个人资产超过 1 亿元的高净值人群达 15 万人.假设给出 N 个人的个人资产值,请快速找出资产排前 M 位的大富翁. 输入格式: 输入首先给出两个正整 ...

  2. linux安装sz rz_超级好用的文件传输命令rz与sz

    做生物信息经常需要在本地客户端与服务器之间进行文件的传输,例如将要分析的数据传到Linux服务器上,进行分析,分析结束之后将结果下载到本地windows系统进行查看.以前我们都推荐大家使用比较稳定,并 ...

  3. 最快速的文件传输软件,解析镭速文件传输软件

    想到每天都需要进行文件传输,就会烦躁,要是有一夸最快速的文件传输软件的话,这样就可以节省大量的时间了,那么针对于用户的这一个需求,我们来介绍一下镭速的文件传输软件,看是否是那么快,快到你难以置信. 文 ...

  4. Linux运维系列总结-Linux系统启动过程、WEB工作原理、DHCP工作原理、DNS解析原理、NFS网络文件系统、FTP文件传输协议、PXE+KICKSTART自动安装系统

    Linux运维系列总结-Linux系统启动过程.WEB工作原理.DHCP工作原理.DNS解析原理.NFS网络文件系统.FTP文件传输协议.PXE+KICKSTART自动安装系统 1.Linux系统的启 ...

  5. MSN和QQ文件传输速度解析

    基本上就是说msn传输文件是使用TCP,而QQ使用UDP,这就是两者传输速率的区别-- 发现很多情况下,msn传输文件比qq要慢,倒不是说msn没有快的时候,但是大部分的时候是真的比QQ慢,连我这种神 ...

  6. 卡尔曼滤波器推导与解析 - 案例与图片

    李小铭 随笔- 5  文章- 2  评论- 13  </div><div id="mylinks"> 博客园  首页  新随笔  新文章  联系  管理   ...

  7. 网络协议从入门到底层原理(10)WebSocket、WebService、RESTful、HTTPDNS、FTP文件传输协议、邮件相关协议、IPv6

    其他协议 WebSocket WebSocket - 建立连接 WebService RESTful HTTPDNS FTP文件传输协议 邮件相关的协议(SMTP.POP.IMAP) POP vs I ...

  8. Linux操作系统基础之文件传输

    目录 一.实验环境的搭建 二.scp命令 三.rsync命令 1.rsync用法 四.文件的归档压缩 1.文件归档 2.文件压缩 3.文件的归档加压缩 一.实验环境的搭建 1.需要两台主机,并且保证两 ...

  9. FTP文件传输协议详解

    简介:FTP是基于TCP协议之上的具有C/S架构的文件服务器. 需要通过控制连接20端口来控制双方的通信 需要通过数据连接21端口来进行双方的通信 主动模式:最大的特点是数据连接由服务器的20端口主动 ...

最新文章

  1. 创建Material Design风格的Android应用--使用Drawable
  2. 网络传输数据格式的选择
  3. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(九)安装kafka_2.11-1.1.0
  4. Processing入门教程-Processing的“前世今生”
  5. 最新 MSDN Library for Visual Studio 2008 SP1
  6. 第四周作业wcPro
  7. fasttext 安装_fasttext的简单介绍
  8. anaconda 历史版本_【windows】下Anaconda详细安装过程
  9. html中超链接使用_干货 | HTML中表格的使用方法
  10. android window 半透明,popupWindow半透明背景
  11. Android开发之ProgressBar控件(实现加载动画与条形进度条)
  12. 菜鸟学习oracle
  13. 惠普打印机换硒鼓图解_hp硒鼓怎么安装 hp硒鼓安装方法这图文教程】
  14. 简简单单做股票读书笔记(1/8)
  15. 军犬舆情每日热点:台湾海峡发生6.2级地震;泉州通报碳九泄漏事件处理结果
  16. python 文件操作OS总结
  17. 重言式判别 (数据结构课程设计)
  18. 空间轨迹分析与应用(前言)Computing with Spatial Trajectories
  19. opencv Fast特征提取函数
  20. java外文资料_java外文文献(毕业设计).doc

热门文章

  1. 你真的知道 NoSuchMethodError 发生原因和解决办法吗
  2. 网络基础(二)及HTTP协议
  3. Nebula:Slack 的覆盖全球性的开源网络
  4. 研发团队远程高效协作秘笈
  5. 从STGW流量下降探秘内核收包机制
  6. TEG Cheers | 腾讯技术工程运维技术沙龙精彩回顾(内置现场视频)
  7. RTMP直播应用与延时分析
  8. Springboot Gitlab Jenkins Maven Docker 持续集成/持续交付
  9. ubuntu搭建zookeeper集群
  10. Scala _10Actor Model