请问如何求(有向/无向)图的强连通分量,还有,基础一点,怎么求有几个连通图啊不太想花时间学习tarjan算法了,麻烦介绍个简单的思路,能应付复赛的时候几个数据就好了

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/03 07:50:18
请问如何求(有向/无向)图的强连通分量,还有,基础一点,怎么求有几个连通图啊不太想花时间学习tarjan算法了,麻烦介绍个简单的思路,能应付复赛的时候几个数据就好了

请问如何求(有向/无向)图的强连通分量,还有,基础一点,怎么求有几个连通图啊不太想花时间学习tarjan算法了,麻烦介绍个简单的思路,能应付复赛的时候几个数据就好了
请问如何求(有向/无向)图的强连通分量,还有,基础一点,怎么求有几个连通图啊
不太想花时间学习tarjan算法了,麻烦介绍个简单的思路,能应付复赛的时候几个数据就好了

请问如何求(有向/无向)图的强连通分量,还有,基础一点,怎么求有几个连通图啊不太想花时间学习tarjan算法了,麻烦介绍个简单的思路,能应付复赛的时候几个数据就好了
求强连通分量的算法有tarjan和kosaraju 两种算法
相较之下 tarjan写起来比较简单 Kosaraju比较麻烦
但是想起来 Kosaraju比较简单
其他求强连通分量的算法 要是还有的话 估计就是需要更高深的数据结构的算法了
建议还是学下tarjan 因为他可以帮你做很多事 比如 求桥 求割点 缩环 而且写起来也很简单
连通图的求法可以直接DFS 每次DFS到一个点 就把它记录成已到达 然后继续向下搜索 每次DFS就可以求出一个连通图
附上tarjan的代码
var
next,head,point:array[1..1000] of longint;
time,tot,i,j,n,m,x,y,t:longint;
v:array[1..10000] of byte;
f,z,q:array[1..1000] of longint;
low,rea:array[1..10000] of longint;
function min(x,y:longint):longint;
begin
if x