关注
必败态的定义就是,”面对当前状态的选手一定会输“的状态。而我们又知道这个游戏没有平局,所以在所有状态中除了必败态的那些状态都是必胜态(这个状态不是必败态,也就是说必定存在至少一种最优的策略,使得只要你按这种策略走,无论对方怎么走,你都能必胜,否则如果不存在这种能让你必胜的策略,那你就是必败的了,总不能平局吧)。清楚了这个概念之后就可以开始打表了。
这里我们用(n,m)这种写法来枚举状态,同时保证 m>n(不考虑 m=n 的情况,太明显了),毕竟 (1,2)和(2,1)是一样的嘛。
首先我们知道最初的必败态是(0,0),很显然嘛,题目里都说了,谁没法拿石子谁就输,所以如果你遇到了(0,0),那你就输了,所以(0,0)是必败态。然后我们看(1,m),很显然(1,m)都能通过一次操作走到(0,0),也就是说让后手的玩家碰到必败态,所以(1,m)都是必胜态,然后我们看(2,3),发现(2,3)不能一次操作走到(0,0),也就是说对(2,3)进行一次操作以后后,后手玩家一定会碰到必胜态 【 因为(2,3)之前的状态除了(0,0)都是必胜的,而且你又走不到(0,0)】,即(2,3)是个必败态,然后其他的(2,m)都可以一次操作走到(2,3),所以当 n 为 2 时,除了(2,3)都是必胜的。
继续推下去,易得出(3,m)和(4,m)也都是必胜的(都能一次操作走到(2,3))。
然后看 n=5时,(5,6)必胜,因为可以一次走到(2,3),(5,7)不能一次走到(2,3),也不能一次走到(0,0),而(5,7)其他能走的状态前面已经枚举过了,都是必胜态,所以(5,7)也是必败的。
一直这样递推下去,打表就OK了。我们用一个集合存好全部的必败态,集合最开始只有一个元素(0,0),每次遇到一个新的状态就判断一下它能否跳到存着所有必败态的集合中的任意一个状态,如果能,则说明这是必胜态,如果不能,则这是一个新的必败态,把他加入集合之中去,暴力跑完所有状态就行了。
查看原帖
9 2
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
- 1... 分享一下年底被广州某游戏公司裁员的经历2.3W
- 2... 挚文集团-陌陌笔试202506062.0W
- 3... 研一快手后端开发,一周速通,附一二面面经1.6W
- 4... 被BOSS直聘某公司老板骂!惊现素质天花板!1.2W
- 5... 牛友们是选爱情还是选前途?9373
- 6... 在携程实习后,我的想法更加坚定了9167
- 7... 金山办公测试春招一面_珠海8870
- 8... 26学院本游戏客户端鼠鼠求职碎碎念+总结8288
- 9... 乡下人第一次到上海租房,隔壁sexy声音搞的我火气很大7254
- 10... 不是,你一个应届毕业生用什么BOSS啊!6368
正在热议
更多
# 我的实习收获 #
32239次浏览 504人参与
# 第一份工作应该选高薪还是热爱? #
61648次浏览 561人参与
# 实习吐槽大会 #
34802次浏览 162人参与
# 2025牛客秋招季 #
5223次浏览 160人参与
# 晒一晒你的工位 #
86366次浏览 307人参与
# 我的租房踩坑经历 #
30386次浏览 308人参与
# 移动求职进展汇总 #
1593次浏览 17人参与
# 穿越回高考你还会选现在的专业吗 #
22883次浏览 270人参与
# 26届秋招投递记录 #
4308次浏览 115人参与
# 求职遇到的搞笑事件 #
113208次浏览 769人参与
# 招银网络求职进展汇总 #
113263次浏览 741人参与
# 地方国企笔面经互助 #
29964次浏览 98人参与
# 双非能在秋招上岸吗? #
215325次浏览 1144人参与
# 毕业旅行去哪玩儿 #
1333次浏览 33人参与
# 如果有时光机,你最想去到哪个年纪? #
47248次浏览 800人参与
# 非技术岗简历怎么写 #
209883次浏览 2861人参与
# 打工人锐评公司红黑榜 #
146204次浏览 920人参与
# 找工作有哪些冷知识 #
97977次浏览 1382人参与
# 携程求职进展汇总 #
533575次浏览 3992人参与
# 牛友们,签完三方你在忙什么? #
95114次浏览 839人参与