[ARC084F] XorShift
题意翻译
有$N$个数$A_{i...N}$写在黑板上,现在有两种可以执行无限次的操作:
当$X$在黑板上时把$2X$也写在黑板上
当$X$和$Y$都在黑板上时,把$XxorY$写在黑板上
求最终有多少个$≤M$的数能被写在黑板上。
$1≤N≤6$, $0≤A_{i...N}≤2^{4000}$
感谢@psk011102 提供的翻译
题目描述
[problemUrl]: https://atcoder.jp/contests/arc084/tasks/arc084_d
黒板に、$ N $ 個の非負整数が書かれています。$ i $ 個目の非負整数は、$ A_i $ です。
高橋君は、以下の $ 2 $ 種類の操作を、好きな順番で何回でも行うことができます。
- 黒板に書かれている整数を $ 1 $ つ選び、その整数の $ 2 $ 倍の整数を新たに書き加える。選ばれた整数も、そのまま残しておく。
- 黒板に書かれている相異なるとは限らない整数を $ 2 $ つ選び、その $ 2 $ 整数の bitwise xor を新たに書き加える。選ばれた整数も、そのまま残しておく。
黒板に書かれうる整数のうち、$ X $ 以下のものは何種類あるでしょうか。なお、最初に黒板に書かれていた整数も、黒板に書かれうる整数とみなします。 答えは非常に大きくなる可能性があるので、$ 998244353 $ で割った余りを求めてください。
输入输出格式
输入格式
入力は以下の形式で標準入力から与えられる。
> $ N $ $ X $ $ A_1 $ $ : $ $ A_N $
输出格式
黒板に書かれうる整数のうち、$ X $ 以下のものの個数を $ 998244353 $ で割った余りを出力せよ。
输入输出样例
输入样例 #1
3 111
1111
10111
10010
输出样例 #1
4
输入样例 #2
4 100100
1011
1110
110101
1010110
输出样例 #2
37
输入样例 #3
4 111001100101001
10111110
1001000110
100000101
11110000011
输出样例 #3
1843
输入样例 #4
1 111111111111111111111111111111111111111111111111111111111111111
1
输出样例 #4
466025955
说明
### 制約
- $ 1\ \leq\ N\ \leq\ 6 $
- $ 1\ \leq\ X\ <\ 2^{4000} $
- $ 1\ \leq\ A_i\ <\ 2^{4000}(1\leq\ i\leq\ N) $
- 入力は全て整数である
- $ X,A_i(1\leq\ i\leq\ N) $ は $ 2 $ 進表記で与えられ、先頭の桁は $ 1 $ である
### Sample Explanation 1
最初、黒板には $ 15,23,18 $ が書かれています。$ 7 $ 以下の整数のうち、$ 0,3,5,6 $ の $ 4 $ 数を書くことができます。 例えば、$ 6 $ は以下のような操作によって書くことができます。 - $ 15 $ を $ 2 $ 倍し、$ 30 $ を書く - $ 30 $ と $ 18 $ の xor をとり、$ 12 $ を書く - $ 12 $ を $ 2 $ 倍し、$ 24 $ を書く - $ 30 $ と $ 24 $ の xor をとり、$ 6 $ を書く
### Sample Explanation 4
$ 998244353 $ で割った余りを求めてください。