【Tarjan】【SCC】【拓扑排序】Graph practice T3 graph 题解

这篇博客介绍了如何使用Tarjan算法求解强连通分量(SCC)和拓扑排序来判断一个有向图是否为单向连通图。博主提供了一个实例,解释了当图中的任意节点间至少存在单向路径时,图被视为单向连通。通过缩点简化问题,并利用拓扑排序判断图是否满足题意。此外,还提到Floyd算法可以用于验证连通性,但Tarjan算法和拓扑排序提供了更优的解决方案,具有O(n+m)的时间复杂度。
摘要由CSDN通过智能技术生成

Problem 3. graph
Input file: graph.in
Output file: graph.out
Time limit: 1 second
jyb 给大家讲过强连通分量,强连通分量中的任意两点之间都可以互相到达。这个条件感觉很苛刻,大部分图
都不能满足。现在jyb 告诉你一个新的概念:单向连通图;如果有向图中,对于任意节点v1 和v2,至少存
在从v1 到v2 和从v2 到v1 的路径中的一条,则为单向连通图。现在给出若干个有向图,jyb 想问你它们是
不是单向连通图。
Input
第1 行,1 个整数T, 表示数据组数,对于每组数据:
第1 行,2 个整数n;m,表示点数和边数
接下来m 行,每行2 个整数u,v, 表示u 到v 有一条单向边。题目保证u! = v
Output
对于每组数据,如果是则输出”Yes”, 不是则输出”No”(均不含引号)
Sample
graph.in graph.out
2
3 2
1 3
2 3
3 2
1 2
2 3
No
Yes
Note
• 对于30% 的数据,1 n 100,1 m n2
• 对于100% 的数据,1 T 5,1 n 30000,1 m 2 105。

Graph:tarjan求SCC+拓扑排序
tarjan缩点并查集也可以过

暴力做法:Floyd求任意两点连通性。(给了30%的分)
我们知道&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值