問題
atcoder.jp
解法
K個の石の山に対して、
dp[k] := k個の石からなる山で先手が勝ち状態か(=1なら勝ち状態)
というdpを設計。
数が小さい方から、Kまでの石の山をシミュレーションしてdpの数値を埋めていく。
まずはk = 0と非常に単純な状態から調べていく。
dp[0] = 0
ならば、先手負けとなる。
k > 0以上のケースで、次がdp[0]に遷移するならば、dp[0] = 0で、そこで行動する手番(つまり後手)は負けとわかる。
実装
基本、はまやん氏のC++コードをPythonコンバート。
細かく調整。
参考
blog.hamayanhamayan.com