- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法合集与之《从“k倍动态减法游戏”出发探究一类组合游戏问题》
从“k倍动态减法游戏”出发探究一类组合游戏问题
上海市上海中学 曹钦翔
指导教师:上海市上海中学 毛黎莉
目录
一:引言
二:问题的提出
三:动态规划的通式解法
四:基于动态规划的优化
4.1利用单调性解决“k倍动态减法游戏”
五:不基于动态规划的思考
5.2利用贪心解决BOI2008 game
NP状态
所谓N状态,是指当前即将操作的玩家有必胜策略(N来源于Next player wins.)。
所谓P状态,是指先前刚操作完的玩家有必胜策略(P来源于Previous player wins.)。
定理:P状态的一切后继都为N状态,N状态拥有至少一个后继是P状态。
通式动态规划解法
步骤1:把所有“胜利终止状态”标记为P状态,“失败终止状态”标记为N状态。
步骤2:找到所有的未定状态中,所有后继都被确定是N状态的状态,设置为P状态。
步骤3:找到所有的未定状态中,可以一步到达P状态的状态,都设置为N状态。
步骤4:若上两步中没有产生新的P状态或N状态,程序结束,否则回到步骤2。
时间复杂度——所有状态的决策数之和
k倍动态减法游戏
有一个整数S(=2),先行者在S上减掉一个数x,至少是1,但小于S。之后双方轮流把S减掉一个正整数,但都不能超过先前一回合对方减掉的数的k倍,减到0的一方获胜。问:谁有必胜策论。
K=2
A第一回合减去2
A第二回合减去1
B第一回合减去4
A获胜
通式解法
NP(m,n)表示S还剩下m且接下去即将操作的玩家最多能减去n的状态,则初始状态为NP(S,S-1)。
规定,若在NP(m,n)状态下,即将操作的玩家必胜则NP(m,n)=1,否则NP(m,n)=0。
若用动态规划计算所有NP(m,n),则判定胜负的时间复杂度为O(n3)。
优化1
状态单调性
状态NP(m,n)是关于关于n单调不减的。
记f(m)=min{n|NP(m,n)=1}
优化1
NP(m,n)=0
当且仅当
对于任意r=1,2,3…n有m-r0且NP(m-r,kr)=1。
若n0=f(m),
则
NP(m-n0,kn0)=0且NP(m-n0+1,k(n0-1))=1
若n0=f(m),
则
f(m-n0)kn0且f(m-(n0-1))=k(n0-1)。
动态转移方程:f(m)=min{n|f(m-n)kn}
时间复杂度:O(S2)
优化2—决策单调性
优化2—决策单调性
所有这些直线是平行的
随着m增大逐渐向下向右移
每一堵墙都是固定的、右端有界的
用栈储存“墙”
优化2—决策单调性
逐个检验栈中的“墙”
若某堵“墙”不能挡住从(m,0)格子出发斜率为k-1的直线,那么该“墙”出栈
否则,若这堵“墙”能挡住斜线,则循环结束并得出f(m)的值。
最后,根据f(m)可确定一堵新“墙”的位置和长度,新“墙”入栈。
时间复杂度:O(S)
BOI 2008 game
一个n*n的棋盘,每个格子要么是黑色要么是白色。白格子是游戏区域,黑格子表示障碍。
指定两个格子AB,分别是先手方和后手方的起始格子。A和B这两格子不重合。
游戏中,双方轮流操作。每次操作,玩家向上下左右四个格子之一走一步,但不能走进黑色格子。有一种特殊情况,当一方玩家,恰好走到当前对方所在的格子里,他就可以再走一步(不必是同一方向),“跳过对手”。
胜负的判定是这样的,若有一方走进对方的起始格子,就算获胜,即使是跳过对方,也算获胜。
通式解法
用(x1,y1,x2,y2)表示状态。
其中(x1,y1)是A的当前位置,(x2,y2)是B的当前位置。另外,还需要一位状态表示当前的操作这是A或B。
因此,状态总数至少为O(n4)个,尽管每个状态的状态转移代价为O(1),但总时间复杂度为O(n4),太高了。
而且状态数为O(n4)也意味着动态规划已经没有优化的余地,算法的设计必须跳出动态规划的框架。
贪心思路
“先” 贪心的信号
两人都应沿着两起始点间的最短路径走
注意到,两个人需要走的路程是相等的
所以如果没有“跳过对手”的规则,先行者将必胜!
结论:
如果先行方A能避免B“跳过A”,则A获胜;
如果后手方B能确保在最短路径上“跳过A”,则B获胜。
BOI官方解答
记d为AB之间最短路的距离。
若d为奇数,A必胜!所以只要考虑d时偶数的情况
用数组LAi存贮,在AB最短路径上,且与距离A为i的格子。
记NP_A[i,j,k]表示,轮到A操作时,A在LAi中的第j个格子上,B在LAd-i中的第k个格子上的状态。
NP_B[i,j,k]表示,轮到B操作时,A在LAi+1中的第j个格子上,B在LAd-i中的第k个格子上的状态。
BOI官方解答的错误
BOI的官方解答中认为,数组NP_A[i,j,k]和数组NP_B[i,j,k]表示的状
您可能关注的文档
- 第八讲 矣牖元函数作图 .ppt
- 第八讲 糜腭间歌舞概述北方歌舞 .ppt
- 第八讲 褂肱希腊数学 .ppt
- 第五课抽与象艺术 .ppt
- 第八讲_涤毳位合力曲线 .ppt
- 第八讲_河氙数(二) .ppt
- 第八讲:与怎样使译文流畅(上) .ppt
- 第八讲 视氲体几何造型 .ppt
- 第八讲假与设检验(完全) .ppt
- 第八讲 扔腌何绘制装配图 .ppt
- 2026年丰台区卫生健康委直属事业单位公开招聘医疗卫生专业工作人员备考题库及答案详解(最新).docx
- 2026年上海对外经贸大学孔子学院国际中文教育专职教师招聘备考题库(含答案详解).docx
- 2026年中南大学机电工程学院非事业编制工作人员招聘备考题库及答案详解(夺冠系列).docx
- 2025年兴化市公安局公开招聘第二批警务辅助人员备考题库及参考答案详解1套.docx
- 2026年临清市财政局(国资局)公开招聘市属国有企业副总经理的备考题库带答案详解.docx
- 2026年中共漯河市委统战部所属事业单位人才引进招聘备考题库附答案详解.docx
- 2026年上海市科创教育研究院招聘备考题库及答案详解(新).docx
- 2025年平阳县兴阳控股集团有限公司下属房开公司公开招聘项目制员工备考题库有答案详解.docx
- 2025年常州市体育局下属事业单位公开招聘工作人员备考题库及参考答案详解1套.docx
- 2026年中国农业科学院第一批统一公开招聘备考题库及1套参考答案详解.docx
原创力文档


文档评论(0)