atcoder#ARC084D. [ARC084F] XorShift
[ARC084F] XorShift
题目描述
黒板に、 個の非負整数が書かれています。 個目の非負整数は、 です。
高橋君は、以下の 種類の操作を、好きな順番で何回でも行うことができます。
- 黒板に書かれている整数を つ選び、その整数の 倍の整数を新たに書き加える。選ばれた整数も、そのまま残しておく。
- 黒板に書かれている相異なるとは限らない整数を つ選び、その 整数の bitwise xor を新たに書き加える。選ばれた整数も、そのまま残しておく。
黒板に書かれうる整数のうち、 以下のものは何種類あるでしょうか。なお、最初に黒板に書かれていた整数も、黒板に書かれうる整数とみなします。 答えは非常に大きくなる可能性があるので、 で割った余りを求めてください。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
黒板に書かれうる整数のうち、 以下のものの個数を で割った余りを出力せよ。
题目大意
有个数写在黑板上,现在有两种可以执行无限次的操作:
当在黑板上时把也写在黑板上
当和都在黑板上时,把写在黑板上
求最终有多少个的数能被写在黑板上。
,
感谢@psk011102 提供的翻译
3 111
1111
10111
10010
4
4 100100
1011
1110
110101
1010110
37
4 111001100101001
10111110
1001000110
100000101
11110000011
1843
1 111111111111111111111111111111111111111111111111111111111111111
1
466025955
提示
制約
- 入力は全て整数である
- は 進表記で与えられ、先頭の桁は である
Sample Explanation 1
最初、黒板には が書かれています。 以下の整数のうち、 の 数を書くことができます。 例えば、 は以下のような操作によって書くことができます。 - を 倍し、 を書く - と の xor をとり、 を書く - を 倍し、 を書く - と の xor をとり、 を書く
Sample Explanation 4
で割った余りを求めてください。