SRM13 T3 花六游鸟小(结论题)

本文分析了一道关于西瓜属性的问题,提出了四个关键结论,并详细解释了每个结论的证明过程。通过对列取反操作的理解,得出了交换集合位置的本质,从而轻松证明了结论的有效性。

  哇这题是真的喵,HR智商太高辣

  这题的难点就是看了题解之后怎么证明题解里的结论...

  结论①:深度大于logm的点肯定能达到最大值

  证明:显然一个西瓜的属性里0数量一半1数量一半我们取到的1数量最少,所以我们最多logm个点就可以把所有属性取到1

  结论②:未达到最大值的点相邻两个肯定价值不同

  证明:易证,取反即可

  结论③:有n个西瓜,记s[i]为拥有的属性i的集合,当s取遍所有可能的2^n种集合的时候达不到最大值

  证明:显然所有的集合里必有一个全0的集合,我们至少需要把这个集合里的一个0变成1。把第一列的取反,让全0集合出现第一个1,但是必定存在有一个集合只有第一列是1,其他列是0的情况,那么又出现了一个全0集合,那么又需要把第二列取反,以此类推我们将会把所有列取反一次,但是所有的集合里必定有一个全1的集合,我们每一列都取反了一次之后,全1集合变成全0集合了,所以肯定取不到最大值。

  我们(其实是HR)可以发现!对列取反的操作实际上是交换集合位置的操作!(ORZ HR!

  因为我们有2^n个集合,所以必定不可能把全0集合消去,所以必定取不到最大值!

  结论④:有n个西瓜,记s[i]为拥有的属性i的集合,当s[i]没有取遍所有可能的2^n种集合的时候肯定可以达到最大值

  证明:借用我们证明结论③时所发现的,我们少了某一个集合,那么只要把全0集合交换成那个缺少的集合即可

  可能有点抽象,所以我们具体分析一下。如果缺少的是全0集合,那么直接就可以取到最大值了。如果缺少的不是全0集合,我们就把缺少的集合为1的那几列取反,相当于将全0集合与缺少的集合交换,缺少的集合必定有1,而且不存在除了缺少的集合之外存在一个只有取反的那几列是1其他是0的集合,于是就可以取到最大值。

  本质:对列取反的操作实际上是交换集合位置的操作

  想明白了这个之后,就可以非常轻松的证明并理解这些结论了

 

转载于:https://www.cnblogs.com/Sakits/p/7348968.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值