哇这题是真的喵,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. SQL 怎么实现模糊查询?

    执行数据库查询时,有完整查询和模糊查询之分. 一般模糊语句格式如下: SELECT 字段 FROM 表 WHERE 某字段 LIKE 条件; 其中,关于条件,SQL提供了四种匹配模式: 一.%:表示零 ...

  2. Selenium 入门到精通系列:四

    Selenium 入门到精通系列 PS:鼠标右键.鼠标悬停.键盘操作方法 例子 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2019 ...

  3. Python输入数据类型判断正确与否的函数大全(非常全)

      对于python输入数据类型判断正确与否的函数大致有三类: (1)type(),它的作用直接可以判断出数据的类型 (2)isinstance(),它可以判断任何一个数据与相应的数据类型是否一致,比 ...

  4. python常用函数—enumerate()

    enumerate() 对于一个可迭代的(iterable)/可遍历的对象(如列表.字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值的元组. 使用拆包,可以单独获得索引和值 ...

  5. SGU 176 Flow construction(有源汇上下界最小流)

    Description 176. Flow construction time limit per test: 1 sec. memory limit per test: 4096 KB input: ...

  6. a2

    Alpha 冲刺报告 队名: 组长:吴晓晖 今天完成了哪些任务: 代码量300+,完成了百度地图API的引入. 展示GitHub当日代码/文档签入记录: 明日计划: 整理下这两个功能,然后补些bug ...

  7. UVA725 Division (暴力求解法入门)

    uva 725 Division Write a program that finds and displays all pairs of 5-digit numbers that between t ...

  8. LintCode-532.逆序对

    逆序对 在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.给你一个数组,求出这个数组中逆序对的总数. 概括:如果a[i] > a[j] 且 i < j, a[i ...

  9. css那些事儿2 经典两列布局

    <!DOCTYPE html> <html> <head> <title></title> <link rel="style ...

  10. Unity3d学习日记(五)

      之前用3dsmax将模型转成FBX怎么也没有办法自动导入材质到Unity3d中(试过勾选了导出嵌入媒体,没用).索性试了试c4d,发现是可行的,看来像我这种菜鸡还是更加适合用c4d.   拿zoe ...