雅礼集训Day4

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

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

posted @ 2017-06-21 23:49  DraZxlnDdt  阅读(150)  评论(0编辑  收藏  举报