Number Game (UVa Live Archive Europe - Mid Central - 2000/2001 Freiburg (Germany))

http://acmicpc-live-archive.uva.es/nuevoportal/data/problem.php?p=2336

問題

1から20までの数字がある。各プレイヤーは自分の番で数値を一つ選び、その数値の倍数とその倍数にすでに消された数値を足した値になっている数値を消す。そして、数値を選べなくなったプレイヤーが負けとなる。このゲームのある盤面を与えるので勝つためにはどの数値を消せばよいか答えよ。

解法

ビットDPでどの状態なら勝ちになるかを求めておいて、各テストケースに対して1手動かして勝ちになるケースを全て列挙すれば良い。