哇这题是真的喵,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 花六游鸟小(结论题)的更多相关文章

  1. 【STSRM13】花六游鸟小

    [题意]给定n个节点的树,每个节点有一个m位二进制数,数字可以随时按位取反,每个数位有一个价值,定义每个点的最大价值是从根到这个点路上的数字(可以取反)或起来的数字中,1有价值0无价值,加起来得到的最 ...

  2. [BZOJ3609][Heoi2014]人人尽说江南好 结论题

    Description 小 Z 是一个不折不扣的 ZRP(Zealot Round-game Player,回合制游戏狂热玩家), 最近他 想起了小时候在江南玩过的一个游戏.     在过去,人们是要 ...

  3. agc015F - Kenus the Ancient Greek(结论题)

    题意 题目链接 $Q$组询问,每次给出$[x, y]$,定义$f(x, y)$为计算$(x, y)$的最大公约数需要的步数,设$i \leqslant x, j \leqslant y$,求$max( ...

  4. [codevs5578][咸鱼]tarjan/结论题

    5578 咸鱼  时间限制: 1 s  空间限制: 128000 KB   题目描述 Description 在广袤的正方形土地上有n条水平的河流和m条垂直的河流,发达的咸鱼家族在m*n个河流交叉点都 ...

  5. BZOJ_1367_[Baltic2004]sequence_结论题+可并堆

    BZOJ_1367_[Baltic2004]sequence_结论题+可并堆 Description Input Output 一个整数R Sample Input 7 9 4 8 20 14 15 ...

  6. 【uoj#282】长度测量鸡 结论题

    题目描述 给出一个长度为 $\frac{n(n+1)}2$ 的直尺,要在 $0$ 和 $\frac{n(n+1)}2$ 之间选择 $n-1$ 个刻度,使得 $1\sim \frac{n(n+1)}2$ ...

  7. 【uoj#175】新年的网警 结论题+Hash

    题目描述 给出一张 $n$ 个点 $m$ 条边的无向连通图,每条边的边权为1.对于每个点 $i$ ,问是否存在另一个点 $j$ ,使得对于任意一个不为 $i$ 或 $j$ 的点 $k$ ,$i$ 到 ...

  8. 【uoj#180】[UR #12]实验室外的攻防战 结论题+树状数组

    题目描述 给出两个长度为 $n$ 的排列 $A$ 和 $B$ ,如果 $A_i>A_{i+1}$ 则可以交换 $A_i$ 和 $A_{i+1}$ .问是否能将 $A$ 交换成 $B$ . 输入 ...

  9. 【bzoj4401】块的计数 结论题

    题目描述 给出一棵n个点的树,求有多少个si使得整棵树可以分为n/si个连通块. 输入 第一行一个正整数N,表示这棵树的结点总数,接下来N-1行,每行两个数字X,Y表示编号为X的结点与编号为Y的结点相 ...

随机推荐

  1. php单例模式和工厂模式

    单例模式:防止重复实例化,避免大量的new操作,减少消耗系统和内存的资源,使得有且仅有一个实例对象 header("Content-type: text/html; charset=utf- ...

  2. 使用 Fiddler工具模拟post四种请求数据

    post请求主体详解: 对于get请求来说没有请求主体entity-body.对于post请求而言,不会对发送请求的数据格式进行限制,理论上你可以发任意数据,但是服务器能不能处理就是另一回事了.服务器 ...

  3. Python|一文简单看懂 深度&广度 优先算法

    一.前言 以后尽量每天更新一篇,也是自己的一个学习打卡!加油!今天给大家分享的是,Python里深度/广度优先算法介绍及实现. 二.深度.广度优先算法简介 1. 深度优先搜索(DepthFirstSe ...

  4. JavaScript 常用正则示例

    1. trim功能(清除字符串两端空格) String.prototype.trim = function() {  return this.replace(/(^\s+)|(\s+$)/g, '') ...

  5. 小程序页面的四种文件(JSON、WXML、WXSS、JS)加载顺序

    一个小程序页面由四种文件组成: 1)json 页面配置文件 2)js 页面逻辑文件(必需) 3)wxml 页面结构文件(必需) 4)wxss 页面样式文件 这四个文件的加载顺序: 第一步: 加载页面j ...

  6. Python基础 之 文件操作

    文件操作 一.路径 文件绝对路径:d:\python.txt 文件相对路径:在IDEA左边的文件夹中 二.编码方式 utf-8 gbk... 三.操作方式 1.只读 r 和 rb 绝对路径的打开操作 ...

  7. 软件管理——rpm&dpkg、yum&apt-get

    一般来说著名的linux系统基本上分两大类: 1. RedHat系列:Redhat.Centos.Fedora等 2. Debian系列:Debian.Ubuntu等 一.RedHat 系列     ...

  8. windows编程了解

    文章:浅谈Windows API编程 (这个经典)

  9. 项目UML设计--日不落战队

    [团队信息] 团队项目: 小葵日记--主打记录与分享模式的日记app 队名:日不落战队 队员信息及贡献分比例: 短学号 名 本次作业博客链接 此次作业任务 贡献分配 备注 501 安琪 http:// ...

  10. android gradle打包常见问题及解决方案

    背景: 问题: Q1: UNEXPECTED TOP-LEVEL ERROR: java.lang.OutOfMemoryError: Java heap space at com.android.d ...