一个分量最少有几个点
一个点,如果没有任何一条环经过它,那它自己【0】。
有几个分量最大的多大
还是那七个点,这次把 5 → 3 那条边加回来,于是图里有了环。 运行下面这段程序: #include <algorithm> #include <climits> #include <iostream>
最大的分量里是哪几个
还是那七个点,这次把 5 → 3 那条边加回来,于是图里有了环。 运行下面这段程序: #include <algorithm> #include <climits> #include <iostream>
自己写:第二遍在反图收点
还是那七个点,这次把 5 → 3 那条边加回来,于是图里有了环。 第一遍的完成顺序 order_by_finish 已经写好了。补全第二遍——在反图 second 上按完成顺序的逆序收点,输出分量个数和最大分量的大小。 (本题用 g++ -
第二遍忘了换反图会怎样
还是那七个点,这次把 5 → 3 那条边加回来,于是图里有了环。 补上选图那一行:second_reversed 为真走反图 rg,为假就是写错的那一版(第二遍还走原图 g)。两版各跑一次,输出各自的分量个数。 (本题用 g++ -std=
列出互相都走得到的点对
还是那七个点,这次把 5 → 3 那条边加回来,于是图里有了环。 comp[u] 是 u 所在分量的编号。列出所有互相都走得到的点对。 (本题用 g++ -std=c++17 -O0 编译。)
两条路算分量数要对上
还是那七个点,这次把 5 → 3 那条边加回来,于是图里有了环。 上面用的是 Kosaraju。再用笨办法数一遍:每一对点正反各跑一次可达性,互相到得了的归成一组。两个数输出出来对账。 (本题用 g++ -std=c++17 -O0 编译。
递归 Tarjan 最怕什么图
第 1 步:系统栈:一共就这么几格 第 2 步:递归到第 1 层 第 3 步:递归到第 4 层 第 4 步:递归到第 8 层 第 5 步:再深一层:段错误 第 6 步:手写栈放在堆上,不占这里 f1 f2 f3 f4 f5 f6 f7 f8
递归深度最多是多少
在一张有 n 个点的图上做递归 DFS,递归深度最多可以达到【0】。
改成手写栈要存什么
把递归 DFS 改成用 vector 手写的栈,栈里每一格至少要存【0】。