2020-2021:teams:farmer_john:jjleo:codeforces_round_648_div._2_virtual_participation
这是本文档旧的修订版!
A | B | C | D | E | F | G |
+ | + | + | + | + | O | O |
rank:1044
A
B
C
D
E
F
G
题解:这不是之前二分那题吗(狂喜)草好像做不了。因为$OR$是可重复贡献的,不用害怕元素重复带来的影响,因此我们可以考虑每次询问很多个元素的$OR$,然后通过特定的算法使得某几个询问的并集正好就是除了$a_i$的其它全部元素。首先有一个询问$2 \log n$次的方法,我们可以设$f_{x,0/1}$为所有下标第$x$位为$0/1$的元素的$OR$,合并答案时,对于一个下标$i$,如果第$x$位是$0$那么我们合并$f_{x,1}$,反之亦然。因为如果两个数字不同那么它们二进制下至少有一位不同,因此可以保证其它元素都被统计而自己没被统计。但是这个方法要询问$2 \log n = 20 > 13$次,不符合题意。我们可以进一步压缩这个编码,我们为每一个下标赋予一个两两不同的$13$位的$01$串,设$f_x$位第$i$
2020-2021/teams/farmer_john/jjleo/codeforces_round_648_div._2_virtual_participation.1592018168.txt.gz · 最后更改: 2020/06/13 11:16 由 jjleo