迷宫城堡 强连通

Problem Description
为了训练小希的方向感,Gardon建立了一座大城堡,里面有N个房间(N<=10000)和M条通道(M<=100000),每个通道都是单向的,就是说若称某通道连通了A房间和B房间,只说明可以通过这个通道由A房间到达B房间,但并不说明通过它可以由B房间到达A房间。Gardon需要请你写个程序确认一下是否任意两个房间都是相互连通的,即:对于任意的i和j,至少存在一条路径可以从房间i到房间j,也存在一条路径可以从房间j到房间i。

 

Input
输入包含多组数据,输入的第一行有两个数:N和M,接下来的M行每行有两个数a和b,表示了一条通道可以从A房间来到B房间。文件最后以两个0结束。

 

Output
对于输入的每组数据,如果任意两个房间都是相互连接的,输出"Yes",否则输出"No"。

 

Sample Input
3 3 1 2 2 3 3 1 3 3 1 2 2 3 3 2 0 0

 

Sample Output
Yes No

 

判断强连通分量是否为1即可
#include<bits/stdc++.h>
using namespace std;
//input by bxd
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define repp(i,a,b) for(int i=(a);i>=(b);--i)
#define RI(n) scanf("%d",&(n))
#define RII(n,m) scanf("%d%d",&n,&m)
#define RIII(n,m,k) scanf("%d%d%d",&n,&m,&k)
#define RS(s) scanf("%s",s);
#define ll long long
#define pb push_back
#define REP(i,N)  for(int i=0;i<(N);i++)
#define CLR(A,v)  memset(A,v,sizeof A)
//
#define inf 0x3f3f3f3f
const int N=100000+5;
int head[N];
int pos;
struct Edge
{int to,nex;
}edge[N];
void add(int a,int b)
{edge[++pos].nex=head[a];head[a]=pos;edge[pos].to=b;
}
int dfn[N],low[N],Stack[N],vis[N];
int tot=0,index=0;
int cnt=0;
void tarjan(int x)
{dfn[x]=low[x]=++tot;Stack[++index]=x;vis[x]=1;for(int i=head[x];i;i=edge[i].nex){if(!dfn[edge[i].to]){tarjan(edge[i].to);low[x]=min(low[x],low[edge[i].to]);}else if(vis[edge[i].to])low[x]=min(low[x],dfn[edge[i].to]);}if(low[x]==dfn[x]){cnt++;do{vis[ Stack[index] ]=0;index--;}while(x!=Stack[index+1]);}
}
int main()
{int n,m;while(~RII(n,m),n||m){CLR(head,0);CLR(dfn,0);CLR(low,0);pos=tot=index=0;rep(i,1,m){int a,b;RII(a,b);add(a,b);}cnt=0;rep(i,1,n)if(!dfn[i])tarjan(i);printf("%s\n",cnt==1?"Yes":"No");}return 0;
}
View Code

 

转载于:https://www.cnblogs.com/bxd123/p/10795754.html

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

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

相关文章

【计算机网络复习 数据链路层】3.3.1 差错控制(检错编码)

差错控制&#xff08;检错编码&#xff09;一、差错从何而来&#xff1f;二、数据链路层的差错控制2.1 奇偶校验码2.2 CRC循环冗余码一、差错从何而来&#xff1f; 概括来说&#xff0c;传输中的差错都是由于噪声引起的。 全局性&#xff1a;由于线路本身电气特性所产生的随机…

从“元宇宙”热炒中理性看待我国虚拟现实产业发展

来源&#xff1a;工信头条作者&#xff1a;袁钰&#xff08;赛迪顾问、电子信息产业研究中心、分析师&#xff09;2021年4月以来&#xff0c;元宇宙概念大热&#xff0c;国内外巨头企业围绕“元宇宙”加快布局&#xff0c;作为元宇宙核心技术之一的虚拟现实也被寄予厚望。经数据…

2018-2019-2 网络对抗技术 20165332 Exp6 信息搜集与漏洞扫描

2018-2019-2 网络对抗技术 20165332 Exp6 信息搜集与漏洞扫描 基础问题回答 基础问题回答 &#xff08;1&#xff09;哪些组织负责DNS&#xff0c;IP的管理。 答&#xff1a;目前全球有5个地区性注册机构&#xff1a; ARIN主要负责北美地区业务 RIPE主要负责欧洲地区业务 APNIC…

【计算机网络复习 数据链路层】3.3.2 差错控制(纠错编码)

差错控制&#xff08;纠错编码&#xff09;一、海明码1.1 确定校验码位数r1.2 确定校验码和数据的位置1.3 求出校验码的值1.4 检错并纠错一、海明码 **海明码&#xff1a;**发现双比特错&#xff0c;纠正单比特错。 1.1 确定校验码位数r 海明不等式&#xff1a; r 为冗余信…

Nature封面重磅!剑桥大学团队揭开老年痴呆背后的罪魁祸首

来源&#xff1a;naturetau蛋白异常是老年痴呆症的重要病因。英国剑桥大学Sjors H. W. Scheres、Michel Goedert等研究人员在Nature上发文&#xff0c;基于不同的蛋白折叠结构对「tau蛋白病」进行分类&#xff0c;荣登Nature封面。听说过阿尔茨海默病吗&#xff1f;没有。老年痴…

速度比晶体管快1000倍,新型单光子开关登上Nature

来源&#xff1a;机器之心作者&#xff1a;CHARLES Q. CHOI一种新型光学开关每秒钟的运行次数达到 1 万亿次&#xff0c;要比现在商用的顶级硅芯片快100到1000倍&#xff0c;这项研究未来或许可以催生出基于光而不是电的新一代计算机。在如今人们应用最为广泛的计算机架构中&am…

【计算机网络复习 数据链路层】3.4.1 流量控制与可靠传输机制

流量控制与可靠传输机制一、数据链路层的流量控制二、流量控制的方法三、可靠传输、滑动窗口、流量控制一、数据链路层的流量控制 较高的发送速度和较低的接收能力不匹配&#xff0c;会造成传输出错&#xff0c;因此流量控制也是数据链路层的一项重要工作。 数据链路层的流量…

linux的驱动开发——简单驱动程序编写

1.字符设备驱动介绍 \qquad字符设备驱动是linux驱动中&#xff0c;最基本的一类设备驱动&#xff0c;字符设备就是按照一个字节一个字节的方式进行读写操作的设备。读写数据分先后顺序&#xff0c;我们常见的单片机外设&#xff0c;比如led灯、按键、I2C、SPI、LCD等等都属于字…

【计算机网络复习 数据链路层】3.4.2 停止-等待协议

停止-等待协议一、停等协议1.1 无差错情况1.2 有差错控制1.4 停等协议性能分析一、停等协议 1、为什么要有停止-等待协议&#xff1f; 除了比特出差错&#xff0c;底层信道还会出现丢包问题。 丢包&#xff1a; 物理线路故障、设备故障、病毒攻击、路由信息错误等原因&#…

6G目前进展与未来展望

来源&#xff1a;6G俱乐部摘要&#xff1a;随着5G的大规模商用&#xff0c;6G研究也成为了移动通信行业新的研究热点。全球通信发达的国家和地区纷纷出台6G研发规划。面向2030年&#xff0c;如何定义6G&#xff0c;如何支撑6G突破现有技术的束缚&#xff0c;构建全新的能力体系…

一起玩儿物联网人工智能小车(ESP32)——14. 用ESP32的GPIO控制智能小车运动起来(二)

摘要&#xff1a;本文主要讲解如何使用Mixly实现对单一车轮的运动控制。 下面就该用程序控制我们的小车轮子转起来了。打开Mixly软件&#xff0c;然后单击顶部“文件”菜单中的“新建”功能&#xff0c;我们来开启一个新程序的开发工作。 我们的工作同样是先从最简单的开始&am…

【计算机网络复习 数据链路层】3.4.3 后退N帧协议(GBN)

后退N帧协议&#xff08;GBN&#xff09;一、后退N帧协议中的滑动窗口二、GBN发送方必须响应的三件事三、GBN接收方要做的事四、滑动窗口长度一、后退N帧协议中的滑动窗口 发送窗口&#xff1a;发送方维持一组连续的允许发送的帧的序号。 接收窗口&#xff1a;接收方维持一组连…

AI+Science 是人类两大科研范式的结合,工程化正当时

来源&#xff1a;ScienceAI编辑&#xff1a;ScienceAI近年来&#xff0c;人工智能&#xff08;AI&#xff09;快速发展&#xff0c;与此同时&#xff0c;越来越多的自然科学研究开始利用 AI 解决领域问题&#xff0c;比如助力药物研发、癌症疗法、材料发现&#xff0c;以及科研…

Docker 是一个开源的应用容器引擎

Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。容器是完全使用沙箱机制&#xff0c;相互之间不会有任何接口。 Docker中包括三个基本概念…

【计算机网络复习 数据链路层】3.4.4 选择重传协议(SR)

选择重传协议&#xff08;SR&#xff09;一、选择重传协议中的滑动窗口二、SR发送方必须响应的三件事三、SR接收方要做的事四、滑动窗口长度五、总结一、选择重传协议中的滑动窗口 二、SR发送方必须响应的三件事 1、上层的调用 从上层收到数据后&#xff0c;SR发送方检查下一…

FZU - 2103 Bin Jing in wonderland

FZU - 2103 Bin & Jing in wonderland 题目大意&#xff1a;有n个礼物&#xff0c;每次得到第i个礼物的概率是p[i]&#xff0c;一个人一共得到了k个礼物&#xff0c;然后按编号排序后挑选出r个编号最大的礼物。现在给出r个礼物的编号&#xff0c;问能得到这r个礼物的概率。…

登上Science子刊,神经科学再次启发DNN设计!中科院揭秘介观自组织反向传播机制...

来源&#xff1a;AI科技评论作者&#xff1a;张铁林&#xff0c;徐波论文标题&#xff1a;A Mesoscale Plasticity for Efficient AI Learning在人工智能领域&#xff0c;目前人工神经网络中被广泛使用的反向传播算法&#xff08;Backpropagation&#xff0c;BP&#xff09;采用…

【计算机网络复习 数据链路层】3.5.1 信道划分介质访问控制

信道划分介质访问控制一、传输数据使用的两种链路二、介质访问控制2.1 频分多路复用 FDM2.2 时分多路复用 TDM2.3 统计时分复用 STDM2.4 波分多路复用 WDM2.5 码分多路复用 CDM一、传输数据使用的两种链路 点对点链路&#xff1a;两个相邻节点通过一个链路相连&#xff0c;没有…

Nature:初步探索限制饮食如何影响肿瘤生长

来源&#xff1a;生物通近年来&#xff0c;有一些证据表明&#xff0c;饮食干预有助于减缓肿瘤的生长。麻省理工学院的一项新研究分析了小鼠的两种不同饮食&#xff0c;揭示了这些饮食是如何影响癌细胞的&#xff0c;并为为什么限制卡路里可以减缓肿瘤生长提供了解释。该研究检…

【计算机网络复习 数据链路层】3.5.2 ALOHA协议

一、纯ALOHA协议 纯ALOHA协议思想&#xff1a; 不监听信道&#xff0c;不按时间槽发送&#xff0c;随机重发。想发就发。 二、时隙ALOHA协议 时隙ALOHA协议的思想&#xff1a; 把时间分成若干个相同的时间片&#xff0c;所有用户在时间片开始时刻同步接入网络信道&#xff0c…