第七次上机实验 T4 证明

49 篇文章 1 订阅
32 篇文章 2 订阅

前言

请教了几位 OI \text{OI} OI 大神后终于大概搞清楚了上机实验 T4 \text{T4} T4 算法的正确性证明。以下证明采用了 HJQwQ \text{HJQwQ} HJQwQ 大神的证明思路,在此特别感谢参与此次证明的多位大神。 也感谢提出问题的 ZHT \text{ZHT} ZHT 大佬,让不求甚解的我认真地思考了一下这个证明过程。

猫羽雫太可爱了

命题

给出一个包含 N N N 个正整数的可重集合 S S S,每次从 S S S 中取出两个数 a a a b b b 并将 a b + 1 ab+1 ab+1 放回集合 S S S 中,直至集合 S S S 中只剩下一个数。试设计一个算法,最大化集合 S S S 中最后余下的那个数最大。

我们的算法是:每次从集合 S S S 中取出最小的两个整数 a , b a,b a,b,并将 a b + 1 ab+1 ab+1 放回集合 S S S 中。

我们的命题是:按照我们的算法,集合 S S S 中最终余下的那个整数一定是最大化的。以下内容将会证明这个命题是正确的。

定义

合并树:合并树是一棵恰有 N N N 个叶子结点的二叉树,这些叶子节点的权值构成的可重集合等于 S S S 的初始值。所有非叶子结点的权值定义为左子权值与右子权值的成绩再加一,即: w ( r ) = w ( ls ( r ) ) ⋅ w ( rs ( r ) ) + 1 w(r)=w(\text{ls}(r))\cdot w(\text{rs}(r))+1 w(r)=w(ls(r))w(rs(r))+1

最优树:在所有合并树中,根节点权值最大的合并树称为最优树,最优树不一定唯一。

引理

递增引理:记 r r r 是合并树上的任意一个结点,不考虑 r r r 子树的变化,在合并树整体形态不变且除 r r r 子树外所有叶节点数值不发生改变的前提下,增大结点 r r r 的权值,整棵合并树的根节点的权值一定增大。

线性引理:设 x , y x, y x,y 是以 r r r 为根结点的子树中的一对兄弟节点。在以 r r r 为根节点的树的形态不发生改变的前提下(不考虑这对兄弟结点的子树中的情况),只改变 w ( x ) w(x) w(x) w ( y ) w(y) w(y) 的值。在这个变化过程中,一定存在正常数 k , c k,c k,c 使得 w ( r ) = k ⋅ w ( x ) w ( y ) + c w(r)=k\cdot w(x)w(y)+c w(r)=kw(x)w(y)+c。其中 k , c k,c k,c 只与树的形态以及数中其他叶子节点的权值 w w w 有关。

最优夹挤引理: x ∈ U x\in U xU,若 x ≥ max ⁡ U x\geq \max U xmaxU x = max ⁡ U x=\max U x=maxU。换言之,若 T ′ T' T 是一棵合并树, T T T 是 一棵最优树,且 T ′ T' T 的根节点的权值大于等于 T T T 的根节点的权值,则 T ′ T' T 也是最优树。

证明

命题 1 1 1

u , v u, v u,v 是可重集 S S S 中的最小值和次小值( u u u 可能等于 v v v)。我们能够说明,至少存在一个最优树,满足 u u u v v v 对应的结点在树上为兄弟结点。

我们可以基于调整法得到命题 1 1 1 的一个等价表述:

命题 2 2 2

任取一棵最优树 T T T,我们在树上找到一个权值为 u u u 的叶结点,记为 p p p。再在 T T T 上除了 p p p 之外的所有结点中找到一个权值等于 v v v 的叶子节点,记为 q q q。倘若 p p p q q q 不是兄弟结点,那么一定存在一棵最优树 T ′ T' T,满足 T ′ T' T p p p q q q 是兄弟节点。

证明命题 2 2 2

假设 p p p 的兄弟结点为 x x x, q q q 的兄弟结点为 y y y。由于 p p p q q q 不是兄弟,故记 r = lca ( p , q ) r=\text{lca}(p, q) r=lca(p,q),则结点 r r r 一定不是 p p p 的父亲,也不是 q q q 的父亲。

不妨假设 p p p 位于以 ls ( r ) \text{ls}(r) ls(r) 为根的子树中, q q q 位于 以 rs ( r ) \text{rs}(r) rs(r) 为根的子树中。由线性引理可知一定存在常数 k 1 , k 2 , c 1 , c 2 k_1, k_2, c_1, c_2 k1,k2,c1,c2 使得 w ( ls ( r ) ) = k 1 ⋅ w ( x ) w ( p ) + c 1 , w ( ls ( r ) ) = k 2 ⋅ w ( y ) w ( q ) + c 2 w(\text{ls}(r))=k_1\cdot w(x)w(p)+c_1, w(\text{ls}(r))=k_2\cdot w(y)w(q)+c_2 w(ls(r))=k1w(x)w(p)+c1,w(ls(r))=k2w(y)w(q)+c2。因此 w ( r ) − 1 = w ( ls ( r ) ) ⋅ w ( rs ( r ) ) = ( k 1 ⋅ w ( x ) w ( p ) + c 1 ) ( k 2 ⋅ w ( y ) w ( q ) + c 2 ) = k 1 k 2 w ( x ) w ( y ) w ( p ) w ( q ) + k 1 c 2 w ( x ) w ( p ) + k 2 c 1 w ( y ) w ( q ) + c 1 c 2 w(r)-1=w(\text{ls}(r))\cdot w(\text{rs}(r))=(k_1\cdot w(x)w(p)+c_1)(k_2\cdot w(y)w(q)+c_2)=k_1k_2w(x)w(y)w(p)w(q)+k_1c_2w(x)w(p)+k_2c_1w(y)w(q)+c_1c_2 w(r)1=w(ls(r))w(rs(r))=(k1w(x)w(p)+c1)(k2w(y)w(q)+c2)=k1k2w(x)w(y)w(p)w(q)+k1c2w(x)w(p)+k2c1w(y)w(q)+c1c2

考虑交换 x , y , p , q x, y, p, q x,y,p,q 中某些结点的权值,而不改变树 T T T 的形态,此时 k 1 , k 2 , c 1 , c 2 , w ( x ) w ( y ) w ( p ) w ( q ) k_1, k_2, c_1, c_2, w(x)w(y)w(p)w(q) k1,k2,c1,c2,w(x)w(y)w(p)w(q) 这五个值一定都不会发生改变,记 C = k 1 k 2 w ( x ) w ( y ) w ( p ) w ( q ) + c 1 c 2 + 1 C=k_1k_2w(x)w(y)w(p)w(q)+c_1c_2+1 C=k1k2w(x)w(y)w(p)w(q)+c1c2+1 则有:

w ( r ) = k 1 c 2 w ( x ) w ( p ) + k 2 c 1 w ( y ) w ( q ) + C w(r)=k_1c_2w(x)w(p)+k_2c_1w(y)w(q)+C w(r)=k1c2w(x)w(p)+k2c1w(y)w(q)+C

k 1 c 2 ≤ k 2 c 1 k_1c_2 \leq k_2c_1 k1c2k2c1

交换 x x x q q q 的权值,根节点 r r r 的新的权值一定不会减小。即:

k 1 c 2 w ( p ) w ( q ) + k 2 c 1 w ( x ) w ( y ) + C ≥ w ( r ) = k 1 c 2 w ( x ) w ( p ) + k 2 c 1 w ( y ) w ( q ) + C k_1c_2w(p)w(q) + k_2c_1w(x)w(y)+C\geq w(r)=k_1c_2w(x)w(p)+k_2c_1w(y)w(q)+C k1c2w(p)w(q)+k2c1w(x)w(y)+Cw(r)=k1c2w(x)w(p)+k2c1w(y)w(q)+C

移项,只需证明:

k 2 c 1 ( w ( x ) w ( y ) − w ( y ) w ( q ) ) ≥ k 1 c 2 ( w ( x ) w ( p ) − w ( p ) w ( q ) ) k_2c_1(w(x)w(y)-w(y)w(q))\geq k_1c_2(w(x)w(p)-w(p)w(q)) k2c1(w(x)w(y)w(y)w(q))k1c2(w(x)w(p)w(p)w(q))

由于 k 1 c 2 ≤ k 2 c 1 k_1c_2\leq k_2c_1 k1c2k2c1 且均为正数,只需证明:

w ( x ) w ( y ) − w ( y ) w ( q ) ≥ w ( x ) w ( p ) − w ( p ) w ( q ) w(x)w(y)-w(y)w(q) \geq w(x)w(p)-w(p)w(q) w(x)w(y)w(y)w(q)w(x)w(p)w(p)w(q)

也就是:

w ( y ) ( w ( x ) − w ( q ) ) ≥ w ( p ) ( w ( x ) − w ( q ) ) w(y)(w(x)-w(q))\geq w(p)(w(x)-w(q)) w(y)(w(x)w(q))w(p)(w(x)w(q))

由于 w ( p ) , w ( q ) w(p), w(q) w(p),w(q) 是所有叶子结点中权值最小的两个,这个不等式显然成立。

k 1 c 2 > k 2 c 1 k_1c_2 > k_2c_1 k1c2>k2c1

交换 y y y p p p 的结点的权值, w ( r ) w(r) w(r) 一定不会变小,即:

k 1 c 2 w ( x ) w ( y ) + k 2 c 1 w ( p ) w ( q ) + C ≥ w ( r ) = k 1 c 2 w ( x ) w ( p ) + k 2 c 1 w ( y ) w ( q ) + C k_1c_2w(x)w(y)+k_2c_1w(p)w(q)+C\geq w(r)=k_1c_2w(x)w(p)+k_2c_1w(y)w(q)+C k1c2w(x)w(y)+k2c1w(p)w(q)+Cw(r)=k1c2w(x)w(p)+k2c1w(y)w(q)+C

移项,只需证明:

k 1 c 2 ( w ( x ) w ( y ) − w ( x ) w ( p ) ) ≥ k 2 c 1 ( w ( y ) w ( q ) − w ( p ) w ( q ) ) k_1c_2(w(x)w(y)-w(x)w(p))\geq k_2c_1(w(y)w(q)-w(p)w(q)) k1c2(w(x)w(y)w(x)w(p))k2c1(w(y)w(q)w(p)w(q))

由于 k 1 c 2 > k 2 c 1 k_1c_2 > k_2c_1 k1c2>k2c1 只需证明:

w ( x ) ( w ( y ) − w ( p ) ) ≥ w ( q ) ( w ( y ) − w ( p ) ) w(x)(w(y)-w(p))\geq w(q)(w(y)-w(p)) w(x)(w(y)w(p))w(q)(w(y)w(p))

而由于 w ( p ) w(p) w(p) w ( q ) w(q) w(q) 中是所有叶子节点中权值最小的两个,故不等式显然成立。

综上

无论 k 1 , k 2 , c 1 , c 2 k_1, k_2, c_1, c_2 k1,k2,c1,c2 的取值为何,我们总能找到一个树 T ′ T' T 使得 T ′ T' T 中结点 r r r 的权值大于等于 T T T 中结点 r r r 的权值。由 T ′ T' T r r r 的权值大于等于 T T T r r r 的权值,根据递增引理可知, T ′ T' T 的根节点的权值也一定大于等于 T T T 的根节点的权值,由最优夹挤引理可知 T ′ T' T 也一定是最优树。命题 2 2 2 得证。

思路简述

利用类似于哈夫曼树的证明思路,采用调整法证明贪心不会使后续最优解变劣。调整法时利用排序不等式的基本思想可以证明调整不会使结点 r r r 的权值变劣。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值