摘要: 题意: n张卡牌,正反两面有两个数字。每一面的概率都为0.5。将所有卡片的值异或起来,求异或值不为0的概率。 题解: 考虑异或值为0的情况。 用sum表示a[1]^...^a[n]的值。用c[i]表示a[i]^b[i]。那么sum^c[i]^...^c[j]代表总的异或值。即sum=c[i]^... 阅读全文
posted @ 2018-05-25 22:42 Pneuis 阅读(238) 评论(3) 推荐(0) 编辑
摘要: 题意: 给出一颗带点权的树。q次询问,每次询问给出点u,v。在两点路径上选出一些点,使其点权异或和最大。 题解: 倍增的合并树上的线性基。对于每次询问,将路径上的点倍增的合并。最后贪心的从高位开始取最大值。 #include <bits/stdc++.h> using namespace std; 阅读全文
posted @ 2018-05-25 19:20 Pneuis 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 题意: 给定N个数,一个数k和一个范围[L,R]。每个数可以使用任意次,k表示与非不超过k位。求出范围内有多少个数可以由他们的与非和表示。 题解: m个数进行NAND,最终的数二进制下某一位如果为1,那么这m个数二进制下这一位也肯定为1。所以如果N个数某些位相同的话就可以把这些位并成一个基。 因为a 阅读全文
posted @ 2018-05-25 18:41 Pneuis 阅读(150) 评论(0) 推荐(0) 编辑