阶梯NIM和树上NIM
阶梯NIM
问题形式#
有个位置,每个位置上个石子。有两个人轮流操作。操作步骤是:挑选中任一一个存在石子的位置,将至少1个石子移动至位置(也就是最后所有石子都堆在在0这个位置)。谁不能操作谁输。求先手必胜还是必败。
结论#
问题等价于,求位置为奇数的的异或和,若异或和等于0,则先手必败,否则先手必胜。你可能已经注意到这非常像Nim游戏。其实这个游戏恰好等价于:将每个奇数位置的数x看成一堆有x个石子的石子堆,然后玩Nim游戏。
为啥#
如果是先手且必胜,按照NIM博弈的方式移动奇数号,如果对手也移动奇数号,那么继续,如果对手移动偶数号(对于奇数号产生了影响),那么先手将对手移动的石子往下再移动,即是把对手操作从奇数号移动到奇数号,没有改变,那么先手必胜,必败也是同理
树上NIM
问题形式:#
给定一棵树,每个点有点权,两个人玩NIM游戏
结论#
深度为奇数的点权异或起来,如果非0,先手必胜。
为啥#
不也相当于二维的阶梯博弈
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET开发智能桌面机器人:用.NET IoT库编写驱动控制两个屏幕
· 用纯.NET开发并制作一个智能桌面机器人:从.NET IoT入门开始
· 一个超经典 WinForm,WPF 卡死问题的终极反思
· ASP.NET Core - 日志记录系统(二)
· .NET 依赖注入中的 Captive Dependency
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(二):用.NET IoT库
· 几个自学项目的通病,别因为它们浪费了时间!
· 在外漂泊的这几年总结和感悟,展望未来
· .NET 数据拷贝方案选择
· .net工作流elsa-书签