ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

D. Circle Game(思维+对称博弈)

2021-02-14 17:58:54  阅读:245  来源: 互联网

标签:状态 那么 博弈 蓝色 必败 必胜 Game 一个点 Circle


https://codeforces.com/problemset/problem/1451/D

 

题意翻译

在坐标轴上,有一个以 (0,0)为圆点,dd 为半径的圆。
现在 Ashish 和 Utkarsh 玩游戏,Ashish 是先手。
在 (0,0) 处有一颗棋子,两人轮流将棋子向上或向右移动 kk 个单位,棋子不能移出圆,谁无法移动谁输。


思路:

两条定理

  1. 必败状态的所有后继状态都是必胜状态

  2. 必胜状态的至少一个后继状态是必败状态

假设(x,y)是必败点,那么(x+1,y),(x,y+1)是必胜点。

根据本题,(x+1,y+1)胜负隔一个k转化,是必败点。再下去可以发现其实必胜点和必败点是连成一条线的。

(https://www.luogu.com.cn/user/59388的图)

【蓝色表示必败点,红色表示必胜点】

那么我们方便的判断直接判y=x这条线。

那么y=x这条怎么知道是在必胜和必败呢?

我们先假设当前y=x是在必胜。那么人工模拟一下发现实际上这个y=x的最后一个红色的是先手输的,所以实际上图是反的。

那么获得了y=x是必败点的图。

 基于此,我们刚才说到了最后一个y=x是蓝色点,如果这个圆的半径稍微扩大一点,也就是刚好把最后一个y=x的蓝色点上面一个(对称的右边一个状态是一样的)包括进来,那么A到了y=x的最后一个蓝色,还有上右可以走一步,一走发现这个时候把决策时刻留给了B。因此可以发现如果y=x的最远一个点上面一个点/右边一个点也在圆内,A获胜,否则B获胜。

求的时候就y=x与圆方程联立求得最远点,/k后表示k步实际上能达到的。然后看其旁边一个点是否在圆内。

 

 

标签:状态,那么,博弈,蓝色,必败,必胜,Game,一个点,Circle
来源: https://blog.csdn.net/zstuyyyyccccbbbb/article/details/113809533

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有