かっさのなにか

僕も生涯現役競プロ人間になりたい

競技プログラミングの不偏ゲーム(Nim, grundy数にまつわる)問題集

はじめに

ゲーム問題へのアプローチについて

ゲームの末尾から考えるとルールや必勝法がわかりやすいです。
Sprague-Grundyの定理によってプレイヤーごとに打つ手が変化しないような”二人完全情報不偏ゲーム”はNimberによってニムに帰着できます。
ゲームをあらかじめ先手必勝か後手必勝かを考えることができます。→これを読みました。

組合せゲーム理論入門 ?勝利の方程式?

組合せゲーム理論入門 ?勝利の方程式?

僕はゲームについてよくわかっていないことが多かったのでこれで何とかなりました。章末問題の答えもWebにアップロードされているのでお金があれば買ってなければ図書館や友人から借りるといいと思います。ゲームの末尾の考え方や拡張が丁寧に書かれているのでとても良い本だと思います。(競プロの主体で読むならば直接関係のない難しいところは読みとばしてもよいと思います。)賢い方や日頃以下の問題を解いている方は読まなくても組合せゲーム理論の基礎的な概念を理解しているようなので必要ないと思います。

また不偏でないゲームについても終局面を考えれば大体の問題を解くことができます。これはDPか再帰で求めることができます(ゲームが終了することを示すことができればDAGであるので。)



以下に問題のリンクを張ります。これらは難易度順ではなく本を読んだ上で僕が解いた順です。適当な解説はgithubにあげてあるので見たい人はみつけてください。

1. C: 笑いをとれるかな? - AtCoder Regular Contest 013 | AtCoder

2. codeforces 399 div2 E Game of Stones

3. codeforces 417 div2 E Sagheer and Apple Tree

4. Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017) E Arpa and a game with Mojtaba

5. ICPC Regionals 2010 Asia Jakarta Playing With Stones

6. SPOJ.com - Problem MMMGAME

7. SPOJ.com - Problem MATGAME

8. No.2 素因数ゲーム - yukicoder

9. No.102 トランプを奪え - yukicoder

10. No.103 素因数ゲーム リターンズ - yukicoder

11. No.153 石の山 - yukicoder

12. No.361 門松ゲーム2 - yukicoder

13. No.524 コインゲーム - yukicoder

14. https://www.hackerrank.com/contests/5-days-of-game-theory/challenges/a-game-of-stones

15. https://www.hackerrank.com/contests/5-days-of-game-theory/challenges/tower-breakers

16. https://www.hackerrank.com/contests/5-days-of-game-theory/challenges/day-1-a-chessboard-game

17. https://www.hackerrank.com/contests/5-days-of-game-theory/challenges/day-2-nim-game

18. https://www.hackerrank.com/contests/5-days-of-game-theory/challenges/misere-nim

19. https://www.hackerrank.com/contests/5-days-of-game-theory/challenges/nimble

20. https://www.hackerrank.com/contests/5-days-of-game-theory/challenges/day-2-poker-nim

21. https://www.hackerrank.com/contests/5-days-of-game-theory/challenges/tower-breakers-2

22. https://www.hackerrank.com/contests/5-days-of-game-theory/challenges/tower-breakers-3

23. https://www.hackerrank.com/contests/5-days-of-game-theory/challenges/a-chessboard-game

24. https://www.hackerrank.com/contests/5-days-of-game-theory/challenges/digits-square-board

25. https://www.hackerrank.com/contests/5-days-of-game-theory/challenges/fun-game

26. https://www.hackerrank.com/contests/5-days-of-game-theory/challenges/powers-of-two-game

27. https://www.hackerrank.com/contests/5-days-of-game-theory/challenges/deforestation

28. https://www.hackerrank.com/contests/5-days-of-game-theory/challenges/final-tower-breakers むずかしい。

29. B: マス目と駒 - AtCoder Regular Contest 038 | AtCoder

30. C: 茶碗と豆 - AtCoder Regular Contest 038 | AtCoder 条件つきgrundy数の高速な求め方

31. Problem - 603C - Codeforces

32. HOJ 828 EEEEndless gamEEEE

33. Black and White Boxes | Aizu Online Judge 組合せゲーム理論の4,5章を読まないとたぶん厳しい問題。不偏ゲームではないがゲームの値が登場する。

34. 3537 -- Crosses and Crosses

35. 2975 -- Nim

36. 2315 -- Football Game Nim K

37. Codeforces Beta Round #99 Div1 D World of Darkraft

38. 1082 -- Calendar Game

39. 2068 -- Nim

40. 3688 -- Cheat in the Game

41. 1740 -- A New Stone Game