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