AtCoder Regular Contest 145 B問題 AB Game
問題
提出解答
問題の概要
次の問題を考える.
Alice と Bob は以下のゲームを行う. 最初, 個の石がある. Alice から次の行動を交互に行っていく.
- Alice は石を1個以上で の倍数個取り除く.
- Bob は石を1個以上で の倍数個取り除く.
上の問題において, を 以上 以下の整数全て考えるとき, 答えが Alice になる整数 は何個か?
制約
解法
Alice 必勝の必要十分条件を考える.
- のとき: まず, でないと, Alice の第1ターンで負けが確定してしまう. そして, だった瞬間 Alice 必勝である. 実際, Alice が取れるだけ石を第1ターンで取ると, としているので, Bob は第1ターンで行動ができなくなってしまう
- のとき: 上の場合と同様に, でないといけない. そして, この場合でも Alice は取れるだけ石を第1ターンで取るべきである. 実際, 個以上の石を残して Bob に手番を渡してしまうと, という場合分けから, 上の場合と同様の理由で Bob が必勝になってしまう. 従って, ならば, Alice の勝ちで, ならば, 上の場合と同様にして, Bob の必勝である.
よって, 求めるべきは
- のとき, を満たす整数 の個数.
- のとき, を満たす整数 の個数である.
ここで, のときは必ず を満たすので, 結局求めるべきは の大小関係に関係なく, を満たす整数 の個数である.
の場合は明らかにどの整数も条件を満たさない. と仮定する. このとき, で 以上 以下の整数のうち, で余りが 未満である整数の個数とする.
余りは周期的であることに着目すると,
である. この を用いて, 求めるべき解答は となる.