概要
解説を書きます。
実験
を満たす全ての状態 について、 その状態から始めて勝てるかどうかを 時間で計算できます。 このままでは実行制限時間に間に合いませんが、結果から予測して AC を得ることができそうです。
解法
としてゲームの状態を で表します。
求めたいのは状態 が先手勝ち状態と後手勝ち状態のどちらであるか、です。
の場合
取ることができる石の個数は 個です。
のとき、どのように操作しても石の個数が の山ができるので後手勝ち状態です。
のとき、後手勝ち状態 に遷移するので先手勝ち状態です。
のとき、先手勝ち状態 に遷移するので後手勝ち状態です。
の状態は の状態によって決まるので、帰納的に
- のとき先手勝ち状態
- のとき後手勝ち状態
となります。
の場合
まず の場合、後手勝ち状態 に遷移できるので先手勝ち状態です。
次に の場合です。
のとき、先手勝ち状態 に遷移する他ないので後手勝ち状態です。
のとき、後手勝ち状態 に遷移できるので先手勝ち状態です。
のとき、遷移先 は全て先手勝ち状態なので、これは後手勝ち状態です。
帰納的に
- のとき先手勝ち状態 ( に遷移する )
- のとき先手勝ち状態 ( に遷移する )
- のとき後手勝ち状態
となります。
の場合
まず の場合、後手勝ち状態 に遷移できるので先手勝ち状態です。
次に の場合、後手勝ち状態 に遷移できるので先手勝ち状態です。
最後に の場合です。
のとき、後手勝ち状態 に遷移できるので、これは先手勝ち状態です。
かつ のとき、遷移先は がありますが、いずれも先手勝ち状態なので、このとき後手勝ち状態です。 ( より が効いています。)
まとめると
- のとき先手勝ち状態 ( に遷移する )
- のとき先手勝ち状態 ( に遷移する )
- のとき
- のとき先手勝ち状態 ( に遷移する )
- のとき後手勝ち状態
の場合
まず ならば後手勝ち状態 に遷移できるので先手勝ち状態です。
次に ならば後手勝ち状態 に遷移できるので先手勝ち状態です。
最後に の場合です。 のとき、遷移先 は全て先手勝ち状態なので、これは後手勝ち状態です。 かつ のとき、後手勝ち状態 に遷移できるので先手勝ち状態です。
まとめると
- のとき先手勝ち状態 ( に遷移する )
- のとき先手勝ち状態 ( に遷移する )
- のとき
- のとき後手勝ち状態
- のとき先手勝ち状態 ( に遷移する )
の場合
ならば後手勝ち状態 に遷移できるので先手勝ち状態です。
ならば後手勝ち状態 に遷移できるので先手勝ち状態です。
ならば、 より後手勝ち状態 に遷移できるので先手勝ち状態です。
よって全ての について先手勝ち状態です。
終わりに
から に遷移できることから、先手は が小さい時に負ける盤面を押し付けることができています。 の場合には勝ち状態で埋め尽くされてしまうんですね。
シンプルな問題設定、かつ、サッと実験のコードを書けば法則がわかるので、早解きリレーならではの良い問題だと思いました。