https://www.luogu.com.cn/blog/0-00-0/solution-p5180
为什么要求支配点: 因为我们是做不到直接求支配点的,支配点一定是半支配点,所以我们要找到所有点的半支配点,然后去求支配点,所有半支配点都有机会成为支配点,我们用semi[v]数组来表示v点的所有半支配点的最小的那个
这段关于半支配点和支配点的关系纯属胡扯,我猜他想表达直接支配点一定是半支配点,但是这个写得太误导人了。
https://www.luogu.com.cn/blog/CharlieVinnie/solution-p5180
接下来,引入一个大家初学 Tarjan 就熟知的定理:对于有向图的 dfs 树而言,只存在前向边与反向边,不存在横叉边。 即只有祖先向孙子连边或孙子向祖先连边。
这个也纯属胡扯。
https://www.luogu.com.cn/blog/xzyxzy/solution-p5180
灭绝树和支配树应该是一种东西
实际上灭绝树应该是反图的支配树。
1.不在dfs树上的边一定是由dfn大的点指向dfn小的点
这个也是在胡扯。
维护R到其已经被搜过的祖先的 dfn的最小值mn[R]
实际上带权并查集维护的应该是祖先中 semi 的 dfn 最小的点。
https://www.luogu.com.cn/blog/lololo/solution-p5180
没有任何讲解就扔了两个链接(甚至同一个链接)。
https://www.luogu.com.cn/blog/206024/solution-p5180
这篇题解关于求半支配点的第二部分只证明了一半,它证明半支配点的 dfn 一定小于等于这样求出来的解但是没有证大于等于。
其中关于“semi(α)=semi(u)”的部分的证明基于一个事实就是在 dfs 生成树的基础上添加每个点的半支配点到该点的边后支配关系与原图相同,但是题解里并没有提到这一点。
后面看不下去了,但是其中大部分证明都非常感性且不严谨,思维比较跳跃。
https://www.luogu.com.cn/blog/Wankupi/solution-p5180
其中关于 semix 一定是 x 的祖先的证明部分“若 dfn[y]<dfn[x] 且 y 不是 x 的祖先,一定不存在满足该条件的路径。”部分看起来很没有逻辑。
求 idom 部分最后那个证明的归纳看起来很怪,至少我没有看懂这是怎么归纳的。
我的评价是不会证不如像 hezlik 一样只讲一个做法,别半懂不懂乱讲一通误人子第。请求撤下上面 4 篇题解,下面 2 我个人也建议撤下,因为讲的实在太乱了,但是貌似没有事实性错误。(最后那篇没看懂在证什么,感觉很假)