定理 1:包含 0 0 与 2 k − 1 2 k − 1 的按位与或空间和 k k 个点的有传递性的有向图形成双射
证明:
空间->传递闭包:对于任意两个位 i , j i , j ,若某个数包含 i i ,则它一定包含 j j ,则连边 ( i , j ) ( i , j ) 。
传递闭包->空间:对于每条边 ( i , j ) ( i , j ) ,令第 i i 位为 1 1 而第 j j 位为 0 0 的数为不合法,则所求空间为所有合法的数。
前一个弄出来的显然是传递闭包。下证后一个是个空间:
考虑这个有向图的所有闭合子图,可以发现闭合子图的与/或都是闭合子图 ,于是与和或都表示出来了,证毕。
定理 2:对于一张带权无向图,设 1 号点度数为 k k 时的最小生成树权值和为 f ( k ) f ( k ) ,则 f ( k ) f ( k ) 下凸
证明:
先把最小生成树建出来,设此时 1 号点度数为 k 0 k 0 。下面考虑 k > k 0 k > k 0 时的情况(k < k 0 k < k 0 类似)
令一次“增交换”为加一条 1 边、去掉一条非 1 边,一次“减交换”为去掉一条 1 边、加一条非 1 边。
设 k − k 0 = a k − k 0 = a ,那么从最小生成树开始,我们要进行 a + t a + t 次“增交换”, t t 次“减交换”。显然可以不妨设各个交换间互不相交。
那么我们发现如果只进行其中的 t t 次“增交换”和 t t 次“减交换”,则由原最小生成树的最小性,进行这些交换并不会变优。于是只会进行 a a 次“增交换”,不会进行“减交换”。
那每次进行的“增交换”一定是排序后当前价值最小的交换,那凸性即可得证。同时可以证明当 k k 递增时 1 边是一条条增加的。
定理 3:对于停时问题,如果状态转移形成 DAG,则停时期望为所有非法状态出现的概率 * 离开这个状态的期望时间
证明:
考虑停时期望为所有初始节点 S 到终止节点 T 的路径出现的概率 * 其期望时间,根据期望的线性性 ,一条路径上的期望时间可以视为所有点走出来的期望时间之和(这么说不准确,应该是整个道路网放在一起考虑),于是大概算一算就可以得出。
也可以将路径分为 S → u S → u 与 u → T u → T 两段来考虑。
定理 4.0:强连通竞赛图一定有哈密顿回路,竞赛图一定有哈密顿路
定理 4.1:一个竞赛图强联通当且仅当把点按出度排序后不存在 k < n k < n 使得前 k k 个点的出度之和是 ( k 2 ) ( k 2 )
定理 4.2:n ≥ 3 n ≥ 3 的强连通竞赛图必定有长度为 n − 1 n − 1 中所有长度的哈密顿路径(从而也有 [ 3 , n ] [ 3 , n ] 中所有的长度)
定理 4.3:n > 3 n > 3 的强连通竞赛图必定有大小 < n < n 的(所有大小的)强连通子图(也是竞赛图)
证明:
4.1 图不强连通 ⇔ ⇔ 有一个大小为 k k 的块封闭着出不去 ⇔ ⇔ 这个块出度和为 ( k 2 ) ( k 2 )
4.2 归纳证明:随便挖掉一个点 u u ,图可能变成 A → B → C → u → A A → B → C → u → A ,由归纳假设可以从 A A 中挖掉一个点
继续归纳就知道 [ 3 , n ] [ 3 , n ] 都有
4.3 有哈密顿回路不就是强连通子图了吗
定理 5:若 ∑ i c i = n ∑ i c i = n ,则 ∑ log c i = O ( √ n ) ∑ log c i = O ( n )
推论:∑ a i = n ∑ a i = n 的背包问题,进行二进制分组,其复杂度为 O ( n √ n ) O ( n n )
证明 1:(\textcolor r e d W \textcolor b l a c k u\_Ren \textcolor r e d W \textcolor b l a c k u\_Ren )
∑ i log c i = ∑ i c i ∑ j = 1 1 j ∑ i log c i = ∑ i ∑ j = 1 c i 1 j
这等价于有 i i 种物品,你一共可以挑 n n 个,每当你挑出第 i i 个物品,所获得的收益为 1 j 1 j (j j 为到目前为止已经挑出的该种物品数量),付出的代价为 i i ,求付出总代价为 n n 时的最大收益。
于是总收益最大值为
1 1 × 1 + 1 1 × 2 + 1 2 × 1 + 1 1 × 3 + 1 3 × 1 + 1 1 × 4 + 1 2 × 2 + 1 4 × 1 + … = 1 a 1 × b 1 + 1 a 2 × b 2 + 1 a 3 × b 3 + … ≤ 1 a 1 + b 1 − 1 + 1 a 2 + b 2 − 1 + 1 a 3 + b 3 − 1 + … ≤ 1 1 + 1 2 + 1 2 + 1 3 + 1 3 + 1 3 + … = 1 × 1 1 + 2 × 1 2 + ⋯ + √ n × 1 √ n = √ n 1 1 × 1 + 1 1 × 2 + 1 2 × 1 + 1 1 × 3 + 1 3 × 1 + 1 1 × 4 + 1 2 × 2 + 1 4 × 1 + … = 1 a 1 × b 1 + 1 a 2 × b 2 + 1 a 3 × b 3 + … ≤ 1 a 1 + b 1 − 1 + 1 a 2 + b 2 − 1 + 1 a 3 + b 3 − 1 + … ≤ 1 1 + 1 2 + 1 2 + 1 3 + 1 3 + 1 3 + … = 1 × 1 1 + 2 × 1 2 + ⋯ + n × 1 n = n
证毕。
证明 2:(\textcolor r e d p \textcolor b l a c k \_b\_p\_b \textcolor r e d p \textcolor b l a c k \_b\_p\_b )
设 d i = i c i d i = i c i ,则有
∑ log c i = ∑ log d i i = ∑ log d i − ∑ log i ∑ log c i = ∑ log d i i = ∑ log d i − ∑ log i
而有
( log ( x i + 1 ) ) ′ = 1 x + i ( log ( x i + 1 ) ) ′ = 1 x + i
故当 d 1 + 1 = d 2 + 2 = ⋯ = d √ n + √ n d 1 + 1 = d 2 + 2 = ⋯ = d n + n 时,∑ log d i ∑ log d i 有最大值,此时有 d i = √ n − i d i = n − i ,从而 c i = d i i = √ n i − 1 c i = d i i = n i − 1
因此
∑ log c i = ∑ log √ n i = √ n log √ n − √ n ∑ i = 1 log i = √ n log √ n − ( √ n log √ n − √ n ) ( 积 分 ) = √ n ∑ log c i = ∑ log n i = n log n − ∑ i = 1 n log i = n log n − ( n log n − n ) (积分) = n
注意这里 √ n ∑ i = 1 log i = √ n log √ n − √ n ∑ i = 1 n log i = n log n − n 是不带常数的(p_b_p_b 教的),所以可以这么减掉
定理 6:对于子集卷积重定义的乘法所形成的运算,均可用 FWT 拆开后计算
顺序:先横着做一遍 FWT,然后竖着对每个位置做普通多项式运算(ln,exp 随便),最后再横着做一遍 IFWT。
定理 7:一棵树的点分治(实际)期望复杂度为 ∑ f ( u ) ∑ f ( u ) ,其中 f ( u ) f ( u ) 为当树以 u u 为根时,所有节点的深度的倒数和,即 f ( u ) = ∑ 1 d e p i f ( u ) = ∑ 1 d e p i
证明:
一棵树点分治的期望复杂度是对于每个节点,其所在连通块存在的期望时间,即以该点为根后,每次删除一个子树,整棵树被删空的期望时间,记为 f ( u ) f ( u ) 。
整棵树被删空的期望时间即为每个节点自己把自己删掉(而不是删子树时被删掉)的概率 和。
考虑我们将 n n 个点摆成一个排列,按顺序删点,如果一个点已经被(删子树时)删掉了就跳过,容易通过“鞭尸”分析发现与删子树等价。
于是一个点自己把自己删掉的概率就是它是从它到根的路径上的所有节点中在排列里第一次出现的概率,即为其深度的倒数。于是 f ( u ) = ∑ 1 d e p i f ( u ) = ∑ 1 d e p i ,答案为 ∑ f ( u ) ∑ f ( u ) 。
放到仙人掌上也能做,容斥即可。
定理 8:⌊ f ( x ) ⌋ ⌊ f ( x ) ⌋ 与 ⌊ g ( x ) ⌋ ⌊ g ( x ) ⌋ 关系如下
let F ( x ) = ⌊ f ( x ) ⌋ , G ( x ) = ⌊ g ( x ) ⌋ f ( x ) ∈ ( − ∞ , g ( x ) − 1 ) ⇒ F ( x ) ≠ G ( x ) f ( x ) ∈ [ g ( x ) − 1 , g ( x ) ) ⇒ F ( x ) ∈ { G ( x ) − 1 , G ( x ) } f ( x ) ∈ [ g ( x ) , g ( x ) + 1 ) ⇒ F ( x ) ∈ { G ( x ) , G ( x ) + 1 } f ( x ) ∈ [ g ( x ) + 1 , + ∞ ) ⇒ F ( x ) ≠ G ( x ) let F ( x ) = ⌊ f ( x ) ⌋ , G ( x ) = ⌊ g ( x ) ⌋ f ( x ) ∈ ( − ∞ , g ( x ) − 1 ) ⇒ F ( x ) ≠ G ( x ) f ( x ) ∈ [ g ( x ) − 1 , g ( x ) ) ⇒ F ( x ) ∈ { G ( x ) − 1 , G ( x ) } f ( x ) ∈ [ g ( x ) , g ( x ) + 1 ) ⇒ F ( x ) ∈ { G ( x ) , G ( x ) + 1 } f ( x ) ∈ [ g ( x ) + 1 , + ∞ ) ⇒ F ( x ) ≠ G ( x )
定理 9:∑ p ∈ P r i m e n p = O ( n log log n ) ∑ p ∈ P r i m e n p = O ( n log log n ) ,即 Dirichlet 前缀和与埃筛的时间复杂度均为 O ( n log log n ) O ( n log log n )
证明:
对于任意一个数 x x ,其为质数的概率 为 1 π ( x ) − π ( x − 1 ) = log x 1 π ( x ) − π ( x − 1 ) = log x ,所以——
∑ p n p = n ∑ i = 1 n i ⋅ [ i ∈ P ] = n ∑ i = 1 n i log i = n n ∑ i = 1 1 i log i = n ∫ n 1 1 x ln x d x = n ⋅ [ ln ln x + C ] n 2 = n ln ln n = O ( n log log n ) ∑ p n p = ∑ i = 1 n n i ⋅ [ i ∈ P ] = ∑ i = 1 n n i log i = n ∑ i = 1 n 1 i log i = n ∫ 1 n 1 x ln x d x = n ⋅ [ ln ln x + C ] 2 n = n ln ln n = O ( n log log n )
定理 10:若函数 f ( n ) f ( n ) 满足当 n n 为偶数时 f ( n ) = 2 f ( n 2 ) f ( n ) = 2 f ( n 2 ) ,当 n n 为奇数时 f ( n ) = f ( n − 1 2 ) + f ( n + 1 2 ) f ( n ) = f ( n − 1 2 ) + f ( n + 1 2 ) ,则 f ( n ) f ( n ) 可以用记忆化搜索在 O ( log n ) O ( log n ) 或 O ( log 2 n ) O ( log 2 n ) 的时间内求出
证明:
若 n n 为偶数,则 f ( n ) f ( n ) 只会递归到 f ( n 2 ) f ( n 2 ) ,显然。
若 n n 为奇数,设 u = n − 1 2 u = n − 1 2 ,则 f ( n ) f ( n ) 递归到 f ( u ) f ( u ) 和 f ( u + 1 ) f ( u + 1 ) 。不妨设 u u 为偶数,则令 u = 2 v , u + 1 = 2 v + 1 u = 2 v , u + 1 = 2 v + 1 ,发现 f ( u ) f ( u ) 会递归到 f ( v ) f ( v ) ,f ( u + 1 ) f ( u + 1 ) 会递归到 f ( v ) f ( v ) 和 f ( v + 1 ) f ( v + 1 ) 。然后两个 f ( v ) f ( v ) 就会“合并”,于是可以认为 f ( u ) f ( u ) 的计算被 f ( u + 1 ) f ( u + 1 ) 吞掉了 ,也就是等价于只递归到 f ( u + 1 ) f ( u + 1 ) 。于是这时候 n n 也会减半。
综上所述,计算复杂度为 O ( log n ) O ( log n ) ,是否再带一个 log log 取决于用 map
还是 multimap
。
定理 11:n n 个点 k k 个大小分别为 a 1 , … , a k a 1 , … , a k 的若干连通块,其形成生成树个数为 n k − 2 ∏ a i n k − 2 ∏ a i 。
证明:
答案即为
∑ { d i } = ( k − 2 d 1 − 1 , d 2 − 1 , … , d k − 1 ) k ∏ i = 1 a d i i ∑ { d i } = ( k − 2 d 1 − 1 , d 2 − 1 , … , d k − 1 ) ∏ i = 1 k a i d i
(设第 i i 个连通块的度数为 d i d i ,则其在 Prufer 序列中出现 d i − 1 d i − 1 次)
令 e i = d i − 1 e i = d i − 1 ,得到
∏ a i ∑ { e i } = ( k − 2 e 1 , e 2 , … , e k ) k ∏ i = 1 a e i i ∏ a i ∑ { e i } = ( k − 2 e 1 , e 2 , … , e k ) ∏ i = 1 k a i e i
而我们发现由广义二项式定理 得:
( s 1 + s 2 + ⋯ + s k ) t = ∏ c 1 + c 2 + ⋯ + c k = t ( t c 1 , c 2 , … , c k ) ∏ s c i i ( s 1 + s 2 + ⋯ + s k ) t = ∏ c 1 + c 2 + ⋯ + c k = t ( t c 1 , c 2 , … , c k ) ∏ s i c i
且 e 1 + e 2 + ⋯ + e k = n − 2 e 1 + e 2 + ⋯ + e k = n − 2 ,于是一步转化:
( a 1 + a 2 + ⋯ + a k ) k − 2 ∏ a i = n k − 2 ∏ a i ( a 1 + a 2 + ⋯ + a k ) k − 2 ∏ a i = n k − 2 ∏ a i
定理 12:当将一棵树上所有点按 bfs 序排序时,一个点前面所有与其距离不超过 k k 的点两两距离不超过 k k 。
证明: 由 bfs 序的最短距离性不难验证。
定理 13:n ∑ k = 2 √ n k = O ( n ) ∑ k = 2 n n k = O ( n ) 。
证明:
n ∑ k = 2 √ n k = ∫ n x = 2 √ n x d x = √ n ∫ n x = 2 x − 1 / 2 d x = √ n [ 2 x 1 / 2 ] n x = 2 = √ n ( 2 √ n − 2 √ 2 ) = O ( n ) ∑ k = 2 n n k = ∫ x = 2 n n x d x = n ∫ x = 2 n x − 1 / 2 d x = n [ 2 x 1 / 2 ] x = 2 n = n ( 2 n − 2 2 ) = O ( n )
定理 14:一个长为 n n 的串本质不同的回文子串个数为 O ( n ) O ( n ) 。
证明:
由马拉车算法易得,或者发现以每个右端点结尾的回文串本质不同的都只有至多一个,否则反射到左边会有一个相同的。
定理 15:网络流增广次数至多为 O ( m a x f l o w ) O ( m a x f l o w ) 次。
证明:
由于每次增广至少会使流量 +1,这是显然的。注意在大部分建出来的图中,这个上界就是 O ( n ) O ( n ) 的。
定理 16:一个单位向量 ( 1 , 0 ) ( 1 , 0 ) 在 [ 0 π ) [ 0 π ) 中随机角度的直线上的投影期望长度为 2 π ≈ 0.636 2 π ≈ 0.636 。
证明:
只需要考虑 θ ∈ [ 0 , π 2 ) θ ∈ [ 0 , π 2 ) 的部分。
∫ π 2 θ = 0 c o s θ π / 2 = [ s i n θ ] π 2 θ = 0 π / 2 = 2 π ≈ 0.636 ∫ θ = 0 π 2 c o s θ π / 2 = [ s i n θ ] θ = 0 π 2 π / 2 = 2 π ≈ 0.636
定理 17.1:[ m ⊆ n ] = ( n m ) mod 2 [ m ⊆ n ] = ( n m ) mod 2 。
证明:
由 Lucas 定理易证!
定理 17.2:( ∑ ∑ x i = s ∏ [ x i ⊆ a i ] ) mod 2 = ∑ ∑ x i = s ∏ ( a i x i ) mod 2 = ( ∑ a i s ) mod 2 ( ∑ ∑ x i = s ∏ [ x i ⊆ a i ] ) mod 2 = ∑ ∑ x i = s ∏ ( a i x i ) mod 2 = ( ∑ a i s ) mod 2
证明:
由定理 17.1 与范德蒙德卷积易证。实在是定理 17.1 的一种极其巧妙的用法!!
定理 18.1:对于一张图,令 f ( S ) f ( S ) 表示 S S 中的点与 S S 外的点的连边数量,则 f ( A B ) + f ( B C ) ≥ f ( A ) + f ( C ) f ( A B ) + f ( B C ) ≥ f ( A ) + f ( C )
证明:
f ( A B ) = A C + A D + B C + B D f ( B C ) = A B + A C + B D + C D f ( A ) = A B + A C + A D f ( C ) = A C + B C + C D f ( A B ) + f ( B C ) = f ( A ) + f ( C ) + 2 B D f ( A B ) = A C + A D + B C + B D f ( B C ) = A B + A C + B D + C D f ( A ) = A B + A C + A D f ( C ) = A C + B C + C D f ( A B ) + f ( B C ) = f ( A ) + f ( C ) + 2 B D
定理 18.2:对于一张图,令 f ( S ) f ( S ) 表示 S S 中的点与 S S 外的点的连边数量,则 f ( A B ) + f ( B C ) ≥ f ( A B C ) + f ( B ) f ( A B ) + f ( B C ) ≥ f ( A B C ) + f ( B )
证明:
f ( A B ) = A C + A D + B C + B D f ( B C ) = A B + A C + B D + C D f ( A B C ) = A D + B D + C D f ( B ) = A B + B C + B D f ( A B ) + f ( B C ) = f ( A B C ) + f ( B ) + 2 A C f ( A B ) = A C + A D + B C + B D f ( B C ) = A B + A C + B D + C D f ( A B C ) = A D + B D + C D f ( B ) = A B + B C + B D f ( A B ) + f ( B C ) = f ( A B C ) + f ( B ) + 2 A C
结论 18.3:f ( A B C ) − f ( A B ) ≤ f ( B C ) − f ( B ) f ( A B C ) − f ( A B ) ≤ f ( B C ) − f ( B ) ,可以认为由于 A B ≥ B A B ≥ B ,所以 C C 的影响较小,这种性质称之为“次模性”。
定理 19:F n + 1 = ∑ i ( n − i i ) F n + 1 = ∑ i ( n − i i ) ,其中 F F 为斐波那契数列。
证明:
考虑 F n + 1 F n + 1 的组合意义,可以认为是现在有 n + 1 n + 1 个格子,一开始站在第一个格子,每次向右跳一格或两格,跳到第 n + 1 n + 1 个格子的方案数。等式右边的 i i 可以视为枚举“大跳”跳了 i i 次,那么就是现在有 n − i n − i 步“小跳”,要在其中选出 i i 步插入一格变成“大跳”,方案数为 ( n − i i ) ( n − i i ) ,于是 F n + 1 = ∑ i ( n − i i ) F n + 1 = ∑ i ( n − i i ) 。
定理 20:任意一个 2 n 2 n 阶完全图均可以划分为 2 n − 1 2 n − 1 个完美匹配。
证明:
构造性证明,中间拎出一个点,枚举一个点 i i 和中间点连边,其余边依次为 ( i − 1 , i + 1 ) , ( i − 2 , i + 2 ) , … ( i − 1 , i + 1 ) , ( i − 2 , i + 2 ) , … 。博客园动图链接
定理 21:max ( x , y ) = ( | x − y | + x + y ) / 2 ≤ | x − y | / 2 + | x + y | / 2 max ( x , y ) = ( | x − y | + x + y ) / 2 ≤ | x − y | / 2 + | x + y | / 2 !
定理 22:对于一个序列 a a 的任意两种划分方式 δ 1 δ 1 和 δ 2 δ 2 满足 | δ 1 | ≥ | δ 2 | | δ 1 | ≥ | δ 2 | ,必然存在 δ 2 δ 2 中的一段是 δ 1 δ 1 中一段的子段。
定理 23:一个图 G G 的任意导出子图中存在一个点的度数 ≤ k ≤ k ⟹ ⟹ 图 G G 可以被 k + 1 k + 1 染色。
定理 24:一个排列 p p 的逆序对数和它的逆排列 p − 1 p − 1 的逆序对数相同。
证明: 将排列 p p 视为一个二元组的集合 ( i , p i ) ( i , p i ) ,那么 p p 的逆序对数即为集合中满足 ( x 1 − x 2 ) ( y 1 − y 2 ) < 0 ( x 1 − x 2 ) ( y 1 − y 2 ) < 0 的二元组对 ( x 1 , y 1 ) , ( x 2 , y 2 ) ( x 1 , y 1 ) , ( x 2 , y 2 ) 个数。对 p p 取逆后不过是将所有二元组两维交换而已,这个值显然不变。
定理 25:对于一个点双连通分量,对于任意两点 u , v u , v 和一条边 e e ,存在 u u 到 v v 的一条简单路径经过边 e e 。
证明: 考虑将边 e e 拆除一个点 z z 来,那么显然剩下的图还是一个点双连通分量。
由点双的性质可知,u u 到 z z 存在两条不交的简单路径,v v 到 z z 也存在两条不交的简单路径。注意到 z z 只连出了两条边,于是这两条路径一定是左右两条边各经过一条(绿边)。
考虑 v v 到 z z 的任意一条路径,如果 v v 到 z z 的路径从下方 与 u u 到 e e 的路径第一次 相交(如蓝边),那 u u 从上方 绕路可以过 e e ;黄边同理。
证毕。
定理 26:对于图 G G ,对于两个点集 U 1 , U 2 U 1 , U 2 和它们的一个最小割 W W ,当 U 1 U 1 变大,U 2 U 2 变小时,存在新的最小割 W ′ W ′ 满足 W ⊆ W ′ W ⊆ W ′ 。
形式化定义:令 M C ( A , B ) M C ( A , B ) 为点集 A A 和点集 B B 之间的所有可能的最小割在 A A 一边的点集。对于任意 U 1 ⊆ ~ U 1 , ~ U 2 ⊆ U 2 U 1 ⊆ U ~ 1 , U ~ 2 ⊆ U 2 ,对于任意 W ∈ M C ( U 1 , U 2 ) , ~ W ∈ M C ( ~ U 1 , ~ U 2 ) W ∈ M C ( U 1 , U 2 ) , W ~ ∈ M C ( U ~ 1 , U ~ 2 ) ,有 W ∪ ~ W ∈ M C ( ~ U 1 , ~ U 2 ) W ∪ W ~ ∈ M C ( U ~ 1 , U ~ 2 ) 。
证明见 CF1427G 的题解 ,不是很想看。但是结论很有用。
英文原文
Lemma: Take U 1 , U 2 U 1 , U 2 disjoint and ~ U 1 , ~ U 2 U ~ 1 , U ~ 2 disjoint, such that U 1 ⊆ ~ U 1 U 1 ⊆ U ~ 1 and ~ U 2 ⊆ U 2 U ~ 2 ⊆ U 2 (that is, U 1 U 1 grows and U 2 U 2 shrinks). If W ∈ M C ( U 1 , U 2 ) W ∈ M C ( U 1 , U 2 ) and ~ W ∈ M C ( ~ U 1 , ~ U 2 ) W ~ ∈ M C ( U ~ 1 , U ~ 2 ) , then W ∪ ~ W ∈ M C ( ~ U 1 , ~ U 2 ) W ∪ W ~ ∈ M C ( U ~ 1 , U ~ 2 ) .
proof. Given two disjoint sets A , B ⊆ V A , B ⊆ V , let c ( A , B ) := | ( A × B ) ∩ E | c ( A , B ) := | ( A × B ) ∩ E | be the number of cross-edges. It holds (without using any assumption on W W or ~ W W ~ )
c ( W ∪ ~ W , ( W ∪ ~ W ) c ) − c ( ~ W , ~ W c ) = c ( W ∖ ~ W , ( W ∪ ~ W ) c ) − c ( ~ W , W ∖ ~ W ) ≤ c ( W ∖ ~ W , W c ) − c ( W ∩ ~ W , W ∖ ~ W ) = c ( W , W c ) − c ( W ∩ ~ W , ( W ∩ ~ W ) c ) . c ( W ∪ W ~ , ( W ∪ W ~ ) c ) − c ( W ~ , W ~ c ) = c ( W ∖ W ~ , ( W ∪ W ~ ) c ) − c ( W ~ , W ∖ W ~ ) ≤ c ( W ∖ W ~ , W c ) − c ( W ∩ W ~ , W ∖ W ~ ) = c ( W , W c ) − c ( W ∩ W ~ , ( W ∩ W ~ ) c ) .
Since W ∈ M C ( U 1 , U 2 ) W ∈ M C ( U 1 , U 2 ) and U 1 ⊆ W ∩ ~ W ⊆ U c 2 U 1 ⊆ W ∩ W ~ ⊆ U 2 c , the right-hand side is nonpositive. Hence also the left-hand side is nonpositive; thus we deduce c ( W ∪ ~ W , ( W ∪ ~ W ) c ) ≤ c ( ~ W , ~ W c ) c ( W ∪ W ~ , ( W ∪ W ~ ) c ) ≤ c ( W ~ , W ~ c ) and therefore W ∪ ~ W ∈ M C ( ~ U 1 , ~ U 2 ) W ∪ W ~ ∈ M C ( U ~ 1 , U ~ 2 ) .
哦现在会证了。看到上面的“次模性”的定义了吗?本质就是那个。
如下图,定义 f ( S ) f ( S ) 为 S S 与 S c S c (即 S S 的补)之间的割大小,那么我们由次模性的定义可知 f ( A B C ) − f ( A C ) ≤ f ( A B ) − f ( A ) f ( A B C ) − f ( A C ) ≤ f ( A B ) − f ( A ) (初始集合越大,加个 B B 的影响越小),即 f ( W ∪ ~ W ) − f ( ~ W ) ≤ f ( W ) − f ( W ∩ ~ W ) f ( W ∪ W ~ ) − f ( W ~ ) ≤ f ( W ) − f ( W ∩ W ~ ) 。
由于 W W 和 W ∩ ~ W W ∩ W ~ 都包含 U 1 U 1 且都不包含 U 2 U 2 ,所以 W W 和 W ∩ ~ W W ∩ W ~ 都属于 M C ( U 1 , U 2 ) M C ( U 1 , U 2 ) ,由 f ( W ) f ( W ) 的最优性知 f ( W ) − f ( W ∩ ~ W ) ≤ 0 f ( W ) − f ( W ∩ W ~ ) ≤ 0 ,从而也有 f ( W ∪ ~ W ) − f ( ~ W ) ≤ 0 f ( W ∪ W ~ ) − f ( W ~ ) ≤ 0 ,而 f ( ~ W ) f ( W ~ ) 是 ~ U 1 U ~ 1 和 ~ U 2 U ~ 2 之间最优的割,所以 f ( W ∪ ~ W ) f ( W ∪ W ~ ) 也是最优的割。证毕。
应用:当大小转 01 的时候,每次把一个 0 改成 1,新最小割方案中 1 的位置一定包含原最小割方案中 1 的位置,故一定存在一个合法的解,满足对每个 01 分解时都满足最小割。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步