专栏文章
浅谈 Kosaraju 的一类运用
算法·理论参与者 3已保存评论 2
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mj09bed9
- 此快照首次捕获于
- 2025/12/11 01:02 2 个月前
- 此快照最后确认于
- 2026/02/13 01:28 7 天前
是的,这玩意是有用的。
我们现在要处理一个这样的问题:一张图,有 个点, 组边,每组边形如 ,表示对于 , 有通向 的边,有 次询问,每次询问形如一个点是否能到达另外一个点。
我们当然可以线段树建图之后跑 Tarjan,但是常数太大了,有没有常数更小,甚至复杂度更好的做法呢?
有的有的。我们考虑直接大力 Kosaraju,那么问题变成了给你若干个区间 ,要你遍历这些区间,每个被区间覆盖到的点至少遍历一次。
直接遍历记录 vis 你肯定就直接 了,但是我们考虑并查集记录 vis,这就可以从一个点 的查找到下一个没有遍历的点了?
事实上不加按秩合并也是对的,证明见 OI-wiki,我怕不会。
那么我们就可以在 之内解决这个问题了。
例题,二分一下建立 2-SAT 就变成上面的问题了。
例题二维版本,这道题我会在下篇文章讲,因为有一些问题没有解决。
相关推荐
评论
共 2 条评论,欢迎与作者交流。
正在加载评论...