atcoder#S8PC3C. XORパズル
XORパズル
题目描述
サンプルケース3に不備があったので、リジャッジをしました。申し訳ございません。(21:01)
square1001は, Atcoder社から長さ の数列 をもらいました。 の要素はすべて異なります。
彼は, 数列 を作りましたが, この数列を覚えていません。しかし, 次のことは覚えています。 - の要素はすべて異なる。
- の要素はすべて にも入っている。
- square'1001' は, 2進数が好きなため, $ b_1\ \oplus\ b_2\ \oplus\ \cdots\ \oplus\ b_r\ =\ k $ ( は数列 の長さ) であることも覚えている。[ は XOR]
square1001は, 数列 として考えられるものが何通りあるのか考えることにしました。
しかし, 彼は全探索をしようとしていて, これに気付いたあなたは, 彼の代わりに求めてあげようとしました。
そのとき, square'1001'が作った数列 として考えられるものは, 何通りあるでしょうか?
ただし, 答えが非常に大きくなることがあるので, で割った余りを求めてください。
输入格式
入力は以下の形式で標準入力から与えられる。
- 行目には、数列の長さと、数列のXORした値が空白区切りで与えられる。
- 行目には、数列の要素が空白区切りで与えられる。
输出格式
出力は以下の形式で標準出力に従うこと。
- square'1001'が作った数列として考えられるものの通り数を1行に出力せよ。
- ただし, で割った余りを出力すること。
题目大意
个数选若干个,异或起来是,有多少种选法?
答案可能过大,对取模。
注意,与是不同的选法。
3 1
1 2 3
3
3 10
8 7 5
6
25 127
5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125
235924722
提示
制約
小課題
小課題1 [ 点 ]
- を満たす。
小課題2 [ 点 ]
- を満たす。
小課題3 [ 点 ]
- を満たす。
Sample Explanation 1
数列 として考えられるのは, の3つである。
Sample Explanation 2
数列 として考えられるのは, $ b\ =\ \{\ 5,\ 7,\ 8\ \},\ \{\ 5,\ 8,\ 7\ \},\ \{\ 7,\ 5,\ 8\ \},\ \{\ 7,\ 8,\ 5\ \},\ \{\ 8,\ 5,\ 7\ \},\ \{\ 8,\ 7,\ 5\ \} $ の6つである。
Sample Explanation 3
で割った余りを求めること。