atcoder#ABC212H. [ABC212H] Nim Counting
[ABC212H] Nim Counting
题目描述
正の整数 , と長さ の整数列 が与えられます。
高橋君と青木君が石取りゲームをすることを考えます。最初、山がいくつかあり、それぞれの山には 個以上の石があります。 高橋君から始めて 人は交互に以下の操作を繰り返します。
- 石が つ以上残っているような山を つ選ぶ。 選んだ山に 個の石があるとき、 個以上 個以下の任意の個数の石をその山から取り除く。
先に操作ができなくなったプレイヤーが負けとなります。
さて、ゲームを始める前の初期状態として次のようなものを考えます。
- 山の個数を としたとき、 をみたす。
- 各山にある石の個数は のいずれかである。
山の順番を並び替えて一致するものも区別するとしたとき、これをみたす初期状態として考えられるものは 通りあります。このうち、 人が自分が勝つために最適な行動をしたとき、高橋君が勝てるような初期状態の個数を で割ったあまりを求めてください。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
答えを出力せよ。
题目大意
题目描述
给定两个数 ,以及一个长度为 的整数数组 。
两个人玩 Nim 游戏。
现在通过以下方式生成一个游戏:
任意选择一个 , 表示石子堆数。
对于每一堆,其石子数是 中任意一个数。
对于 种游戏,求先手获胜的游戏数,答案对 取模。
输入格式
第一行两个数 。
输出格式
一行一个数,表示答案。
数据范围
-
-
。
-
两两不同。
样例 解释
总共有 种可能的游戏 。
其中先手赢的是 ,一共 种情况。
$\textsf{\textbf{Translated by @\color{5eb95e}nr0728}}.$
2 2
1 2
4
100 3
3 5 7
112184936
提示
制約
- は全て相異なる。
- 入力は全て整数である。
Sample Explanation 1
最初の状態における各山の石の個数として考えられるのは , , , , , の 通りです。 これらのうち、 , , , の 通りについては高橋君に必勝法が存在し、残りの 通りについては青木君に必勝法が存在します。よって、 を出力します。
Sample Explanation 2
で割った余りを求めることに注意してください。