Topcoder SRM 624 DIV II Level 3

时间:2014-06-17 16:34:04

标签: algorithm

有谁能请解释这个问题的解决方案,你可以在这里查看问题: http://community.topcoder.com/stat?c=problem_statement&pm=13204 和解决方案: http://apps.topcoder.com/wiki/display/tc/SRM+624

我实际上不明白如何计算nimbers以及最小排除序数的选择是如何导致解决方案的。

1 个答案:

答案 0 :(得分:4)

我在这个问题上遇到了很多困难,我在SRM结束后试图自己解决这个问题但是找不到解决方案所以我决定阅读这篇社论。

在问题中呈现的游戏是使用正常游戏惯例的公正游戏,因此基于Sprague-Grundy定理,它等同于游戏Nim,其中每个状态可以由nimber表示。

Nim游戏已经解决,即使是由多个独立的Nim堆组成的Nim游戏已经解决,因此有一种方法可以找出哪种玩家在这类游戏中有获胜策略。这是使用代表游戏状态的nimbers确定的。如果当前位置无法移动,则位置变为nimber 0.否则,根据Sprague-Grundy定理,位置的nimber是不会出现在该组中的最小非负整数。可以从当前位置一步到达的nimbers。

本文帮助我理解了nimber理论:http://web.mit.edu/sp.268/www/nim.pdf。至于Sprague-Grundy定理的证明,我发现one from Wikipedia更容易理解。