字典拓扑原理
字典拓扑原理
Principle
设排列 \(P\) 为有向无环图 \(G\) 上的一个拓扑序。设 \(Q=P^{-1}\),即 \(P\) 是 \(Q\) 的逆排列。记 \({\rm rev}(P)\) 为 \(P\) 的翻转。
-
\(P\) 是字典序最大的拓扑序,等价于 \(Q\) 是字典序最大的逆拓扑序。
也就是说,设 \(P\) 为字典序最大的拓扑序,\(Q\) 为字典序最大的逆拓扑序,则有 \(P=Q^{-1}\)。
-
\(Q\) 是字典序最小的逆拓扑序,等价于 ${\rm rev}(P) $ 是字典序最大的。
-
\(P\) 是字典序最小的拓扑序,等价于 \({\rm rev}(Q)\) 是字典序最大的。
-
\({\rm rev}(P)\) 是字典序最小的,等价于 \({\rm rev}(Q)\) 是字典序最小的。
Proof
下面只给出第一个原理的证明,后面三个同理可证。
对 \(G\) 的点数 \(n\) 施数学归纳法。\(n=1\) 时显然成立。
设 \(n>1\),假设命题对于 \(n'<n\) 均成立。
设 \(1\) 号点能到达的节点集合为 \(T\),除 \(T\) 和 \(1\) 的剩余节点集合为 \(S\)。
由于 \(T\) 中节点的拓扑序一定比 \(1\) 要大,所以 \(1\) 的拓扑序最大为 \(n-|T|\)。由此得到 \(Q_1=n-|T|\)。
又由于求 \(P\) 时对于入度为 \(0\) 的点一定是从大往小取,所以 \(S\) 中的节点在 \(P\) 中一定在 \(1\) 的前面。由此得到 \(P_{n-|T|}=1\)。
求解 \(P\) 的过程可以分为三个子问题 \(G(S),1,G(T)\)。即 \(P=P(S)+1+P(T)\)。
由归纳假设,命题对三个部分都成立。于是命题对 \(G\) 也成立。

浙公网安备 33010602011771号