• 雅礼集训Day4


    今天炸的1p。。。。。
    T1,给你100次询问,每次L,R,选[L,R]中的若干数进行异或,求有多少种结果,1< L <=R<=1e18.
    做法:暴力很显然是将L,R这些数加入线性基,然后算一下线性基里有多少个数。我们可以考虑线性基的每一位最早在多久被加入。这个就可以看l了,它二进制的最高位很显然是一开始就加入线性基了。然后其他位
    如果为1,很显然当他最早第二次出现时就加入了。为0的话,最早第一次出现时就加入了。
    我们先证明为0的第一次出现就加入的情况,如果第一次出现时就加入的话,很显然是最早的,所以我们只需要证明第一次出现就会加入,因为是第一次,所以之前加进来的所有数高位都是相同的,也就是说,这个数是不会因为之前的位为1而在之前就被加入的,得证。
    然后我们尝试来证明1的话最早第二次出现就加入的情况。首先当他为第一次出现时,很显然所有加入线性基中的元素中他以及比他更高的位都是一样的,然后当他这一位为0时,线性基中加入的比他高的元素只可能是比他高恰好一位的那个,并且此时这一位为0,所以加入线性基时这一位不会存在。

    T2,很显然答案为二分图最大匹配,有一个显然的结论便是:对于一个最大匹配,我们一定能找到合法方案。
    我们就可以让圆外每个点对和他合法的园内点进行极角排序,这样跑出来的方案一定是合法的!

  • 相关阅读:
    gradle3.0新命令
    Android Studio项目生成Jar包
    《图解HTTP》读书笔记
    Java实现多继承
    Unity3d和Android之间互相调用
    《Gradle权威指南》--Android Gradle NDK支持
    《Gradle权威指南》--Android Gradle测试
    《Gradle权威指南》--Android Gradle多渠道构建
    adb命令大全
    SparseArray源码解析
  • 原文地址:https://www.cnblogs.com/dcoi-king/p/7491416.html
Copyright © 2020-2023  润新知