Gale-Ryser 定理

一个简单但还是比较实用的东西,当结论记做题可以少推几步,随手写下。

给定两个和相等的度数序列 \(\{a_1,a_2,\dots,a_n\},\{b_1,b_2,\dots,b_m\}\),那么其对应一张二分图两边的度数序列的充要条件是:对于所有 \(a\) 序列的 \(k\) 元子集 \(S\),其和不超过 \(\sum_{i=1}^m \min(b_i,k)\)

必要性显然,充分性考虑增量构造证明。限制最紧的一定是最大的 \(k\) 个数组成的子集,所以从大到小排序就只用考虑某个前缀的限制。

那你按度数从大往小依次考虑所有左部点,设现在在考虑第 \(k\) 个,每次找出目前度数小于 \(\min(b_i,k)\) 的右部点 \(t\),如果之间没边直接加入一条,否则考虑右部点 \(t\)\(1,2,\dots,k-1\)\(k-1\) 个左部点一定有一个没有连边,设为 \(x\),而这个左部点目前的度数肯定严格比第 \(k\) 个点大,那么存在一个右部点 \(y\) 使得 \((x,y)\) 存在而 \((k,y)\) 不存在。删去 \((x,y)\) 然后加入 \((k,y),(x,t)\) 即可。

posted @ 2024-06-03 08:11  yyyyxh  阅读(46)  评论(0编辑  收藏  举报