Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我知道按位异或的工作原理,并且我知道获胜位置等于 0。您如何确定要调整哪个堆以及要拿走多少以创建获胜位置(假设有 3 堆)?
对每堆中的石头数量进行异或运算,得到三堆的异或和。如果异或和为零,则没有获胜游戏。否则,将xor-sum与每堆棋子的数量依次异或,选择xor小于堆中棋子数量的第一堆,并从堆中取出足够多的棋子使xor为零,即使所有三个桩的异或和为零,这迫使获胜。有关实现,请参阅我的博客。