7.1 闲话-Erdős–Gallai 定理和哈基米算法
Erdős–Gallai 定理
前几天考试有一个建出最大流模型,转为最小割,然后模拟最小割的套路。
这一个套路并不是少见的。在 Gale-Ryser 定理和 Erdős–Gallai 定理的证明都体现了这个想法。
Gale-Ryser 定理:我先阅读了博文的 ycx060617 的评论的对 Gale-Ryser 定理的证明,略去。
Erdős–Gallai 定理:非增序列 \(d_i\) 可能作为简单图的度数序列的充分必要条件是
建出网络流图:\(S\) 向点 \(x_{1:n}\) 连边权值为 \(d_{1:n}\),\(y_{1:n}\) 向 \(T\) 连边权值为 \(d_{1:n}\),\(x_i,y_j\) 连权值为 \(1\) 的边当 \(i \neq j\)。
有解当且仅当最大流为 \(\sum d_i\),且中间边的有流边是配对的。
首先证明,不考虑配对条件,最小割是 \(\sum d_i\) 的充分条件确实是上面所述(枚举左边选了那些点,考虑右边选点个数即可);
然后需要证明:如果存在中间点的(符合条件)最大流方案,则存在满足配对条件且流量不变最大流方案。
首先去除已配对边和零度点。只需证明每个局面 \(P\) 都存在一个至少获得一个新配对边的方案。
注意一个基本的事实:如果 \((a,b),(x,y)\) 配对,那么 \((a,y),(b,x)\) 配对。
找到一条存在边 \(E_1\) 和他的对称边 \(E_2(a,b)\),如果 \(\exists (u,a),(v,b)\in P,(u,v)\not\in P\),就胜利了。
否则一直不满足这个条件,不能无穷继续,则一定会连出一个环状的关系。这个时候最后一对边改成 \((a,y),(b,x)\) 的形状,逐个向前调整(这是因为 \(2\mid \sum d_i\)),证毕。
哈基米算法
定理:设 \(f(d)\) 为一个度数序列的合法性,则设 \(d'\) 为把 \(d_1\) 清零,\(d_{2:d_1+1}\) 减一的序列,则 \(f(d)=f(d')\)。
应该是分讨一下就可以了(但是分讨有点过于麻烦了,,)
然后直接按照这个定理的过程做判定即可。出现负数直接寄,最后全零就是赢。