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的集合,于是就可以取到最大值。
本质:对列取反的操作实际上是交换集合位置的操作
想明白了这个之后,就可以非常轻松的证明并理解这些结论了
SRM13 T3 花六游鸟小(结论题)的更多相关文章
- 【STSRM13】花六游鸟小
[题意]给定n个节点的树,每个节点有一个m位二进制数,数字可以随时按位取反,每个数位有一个价值,定义每个点的最大价值是从根到这个点路上的数字(可以取反)或起来的数字中,1有价值0无价值,加起来得到的最 ...
- [BZOJ3609][Heoi2014]人人尽说江南好 结论题
Description 小 Z 是一个不折不扣的 ZRP(Zealot Round-game Player,回合制游戏狂热玩家), 最近他 想起了小时候在江南玩过的一个游戏. 在过去,人们是要 ...
- agc015F - Kenus the Ancient Greek(结论题)
题意 题目链接 $Q$组询问,每次给出$[x, y]$,定义$f(x, y)$为计算$(x, y)$的最大公约数需要的步数,设$i \leqslant x, j \leqslant y$,求$max( ...
- [codevs5578][咸鱼]tarjan/结论题
5578 咸鱼 时间限制: 1 s 空间限制: 128000 KB 题目描述 Description 在广袤的正方形土地上有n条水平的河流和m条垂直的河流,发达的咸鱼家族在m*n个河流交叉点都 ...
- BZOJ_1367_[Baltic2004]sequence_结论题+可并堆
BZOJ_1367_[Baltic2004]sequence_结论题+可并堆 Description Input Output 一个整数R Sample Input 7 9 4 8 20 14 15 ...
- 【uoj#282】长度测量鸡 结论题
题目描述 给出一个长度为 $\frac{n(n+1)}2$ 的直尺,要在 $0$ 和 $\frac{n(n+1)}2$ 之间选择 $n-1$ 个刻度,使得 $1\sim \frac{n(n+1)}2$ ...
- 【uoj#175】新年的网警 结论题+Hash
题目描述 给出一张 $n$ 个点 $m$ 条边的无向连通图,每条边的边权为1.对于每个点 $i$ ,问是否存在另一个点 $j$ ,使得对于任意一个不为 $i$ 或 $j$ 的点 $k$ ,$i$ 到 ...
- 【uoj#180】[UR #12]实验室外的攻防战 结论题+树状数组
题目描述 给出两个长度为 $n$ 的排列 $A$ 和 $B$ ,如果 $A_i>A_{i+1}$ 则可以交换 $A_i$ 和 $A_{i+1}$ .问是否能将 $A$ 交换成 $B$ . 输入 ...
- 【bzoj4401】块的计数 结论题
题目描述 给出一棵n个点的树,求有多少个si使得整棵树可以分为n/si个连通块. 输入 第一行一个正整数N,表示这棵树的结点总数,接下来N-1行,每行两个数字X,Y表示编号为X的结点与编号为Y的结点相 ...
随机推荐
- JDK11安装后,环境变量的坑
安装了最新的JDK11,安装完后设置环境变量,打开CMD,没生效 检查了3遍,都没发现问题,在PATH中将JAVA设置移到第一也不行 最后偶然发现,在点击如图右下的‘编辑文本’,用文本方式编辑时,发现 ...
- docker创建redis镜像
pull redis 镜像 创建redis的镜像有几种方式,可以直接从仓库中拉取,也可以采用dockerfile文件自己编译创建. 基于已有的redis镜像,docker可以采用run,或者creat ...
- parity注记词和地址
remix skilled curled cobweb tactics koala bartender precinct energize exes ridden cohesive 0x00EeC52 ...
- URAL 1297 Palindrome(Manacher)
The “U.S. Robots” HQ has just received a rather alarming anonymous letter. It states that the agent ...
- 团队协作第八周个人PSP
11.3 --11.9本周例行报告 1.PSP(personal software process )个人软件过程. 类型 任务 开始时间 结束时间 中断时间 实际用时 ...
- Thunder团队——事后诸葛亮会议
小组名称:Thunder 项目名称:爱阅APP 小组成员:王航 李传康 代秋彤 邹双黛 苗威 宋雨 胡佑蓉 杨梓瑞 一.设想和目标 1.我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型 ...
- c# windows service 程序
service服务程序:可以长时间运行可执行应用程序.没有用户界面.可以自动启动和手动启动.适用于在服务器上或需要干扰其他工作的用户可以在同一台计算机上长时间的运行此功能. C#创建service服务 ...
- C语言 内存分配 地址 指针 数组 参数 实例解析
. Android源码看的鸭梨大啊, 补一下C语言基础 ... . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/detai ...
- Divide two integers without using multiplication, division and mod operator.
描述 不能使用乘法.除法和取模(mod)等运算,除开两个数得到结果,如果内存溢出则返回Integer类型的最大值.解释一下就是:输入两个数,第一个数是被除数dividend,第二个是除数divisor ...
- 3dContactPointAnnotationTool开发日志(三)
今天的目的是把obj文件导到场景里.具体将制定路径的obj文件导进去我用的是这个方法.导进去后呈现的是一个黑色的影子. 导入后还想实现一下缩放功能,请看这个方法.缩放实现起来也很简单. 光 ...