题意
做法一
这个是我自己想的,可以过atc的数据,不过不太严谨
我猜测,将(n)个已有的数字(S_i)反复乘(2),对于扩展到(|S_i|sim 2max{|S|})的长度插入线性基,然后就是随便计数即可
我猜测,那个乘(2)只是个上界,对于官方数据,将长度扩展到(max{|S|}+3000)就可以过了
code
做法二
这个是官方题解
将数字看成多项式,则操作变成
- 乘(x)
- 两个多项式按位异或
按一般的多项式的操作定义现在的多项式
可以发现求gcd后原来的性质依然满足
故可以表示出来的数是原数的gcd,然后就是随便计数即可