Vijos1655 - 萌萌的糖果博弈
Description
两人轮流操作两堆初始数量分别为\(a,b(a,b\leq2^{127})\)的石子。每人每次进行如下操作:
- 取走一堆石子,并将另一堆分成两个非零堆。
如果另一堆只剩下一个石子了,那么目前操作的人获胜。求先手是否必胜。
Solution
先找一波规律。将当前的人必胜的状态称为\(N\)-position,必败的状态称为\(P\)-position,则:
\(P \ 1 - P(0,1)\)
\(N \ 2 - N(1,1)\)
\(N \ 3 - N(1,2)\)
\(P \ 4 - N(1,3),P(2,2)\)
\(P \ 5 - N(1,4),P(2,3)\)
\(...\)
前面的数字\(x\)表示得到了一个两堆和为\(x\)的状态时,是必胜还是必败。如果\(x\)至少有一种分拆是\(P\),那么\(x\)就是\(P\)。因为只要存在\(P\),对手就可以将这个\(P\)-position给你从而获胜。那么在一个状态中,如果两堆石子存在\(P\)那么该状态是\(N\),否则该状态是\(P\)。
找到的规律就是\(N\)-position和\(P\)-position是\(PNNPP\)五个一循环的。下面来证明一下。
依然是数学归纳法。
若对于正整数\(k\),\(\forall x \in [1,5k]\)结论成立。则
\(x,y\equiv0(mod\ 5),x+y=5k\)
\(P \ 5k+1 - N(x,y+1),N(x+2,y-1),P(x+3,y-2)\)
\(N \ 5k+2 - N(x,y+2),N(x+1,y+1),N(x+3,y-1)\)
\(N \ 5k+3 - N(x,y+3),N(x+1,y+2),N(x+4,y-1)\)
\(P \ 5k+4 - N(x,y+4),N(x+1,y+3),P(x+2,y+2)\)
\(P \ 5k+5 - N(x,y),N(x+1,y+4),P(x+2,y+3)\)
所以对于正整数\(k+1\),\(\forall x \in [1,5(k+1)]\)结论仍成立。
而\(k=1\)时结论成立(见上方),所以\(\forall x\in\mathbb{N}^*\),结论成立。
所以只要\(a,b\)中有一个模5余1,4,5就是先手必胜,否则后手必胜。
Code
不想写了
P.S.
hzwer的博弈论第一题就让我推了这么半天orz
Vijos1655 - 萌萌的糖果博弈的更多相关文章
- vijos 1655 萌萌的糖果博弈 博弈
背景 用糖果来引诱小朋友学习是最常用的手法,绵羊爸爸就是用糖果来引诱萌萌学习博弈的. 描述 他把糖果分成了两堆,一堆有A粒,另一堆有B粒.他让萌萌和他一起按照下面的规则取糖果:每次可以任意拿走其中一堆 ...
- 靠!老师居然叫我们去写博弈论!!!结果写了一个晚上的博弈论,简直要死QAQ。。。发发博客休息一下。。。TAT。。。
萌萌的糖果博弈 题目描述: 用糖果来引诱小朋友学习是最常用的手法,绵羊爸爸就是用糖果来引诱萌萌学习博弈的.他把糖果分成了两堆,一堆有A粒,另一堆有B粒.他让萌萌和他一起按照下面的规则取糖果:每次可以任 ...
- HDU 1907 Nim博弈变形
1.HDU 1907 2.题意:n堆糖,两人轮流,每次从任意一堆中至少取一个,最后取光者输. 3.总结:有点变形的Nim,还是不太明白,盗用一下学长的分析吧 传送门 分析:经典的Nim博弈的一点变形. ...
- 糖果大战 hdu1204
糖果大战 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- hdu 1907(Nim博弈)
John Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submis ...
- hdu1907John(反nim博弈)
John Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submis ...
- BZOJ 5046 分糖果游戏
网页崩溃了 心态也崩溃了 MD劳资写了那么多 题意: 有a,b两个人分糖,每个人都有一个能量值.每个人每一轮可以选择进行两种操作: 1.取走最左边的糖果,补充相应的能量值并获取相应的美味度. 2.跳过 ...
- 原生js可爱糖果数字时间特效
效果展示:http://hovertree.com/texiao/js/35/ 数字采用漂亮的糖果皮肤设计 效果图: 代码如下: <!DOCTYPE html> <html> ...
- hdu----(1849)Rabbit and Grass(简单的尼姆博弈)
Rabbit and Grass Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
随机推荐
- Ansj分词的使用
jar包下载地址:http://download.csdn.net/download/jj12345jj198999/6020541 博客地址:http://blog.csdn.net/a822631 ...
- C#方法拓展
作用: “扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型.” 要求: 1.拓展方法必须是在一个非嵌套.非泛型的静态类中定义.2.他至少有一个参数.3. ...
- P1847 轰炸II
题目背景 本题为轰炸数据加强版 题目描述 一个城市遭到了M次轰炸,每次都炸了一个每条边都与边界平行的矩形 在轰炸后,有N个关键点,指挥官想知道,它们有没有受到过轰炸,如果有,被炸了几次,最后一次是第几 ...
- checkbox设置复选框的只读效果不让用户勾选
在Web开发中,有时候需要显示一些复选框(checkbox),表明这个地方是可以进行勾选操作的,但是有时候是只想告知用户"这个地方是可以进行勾选操作的"而不想让用户在此处勾选(比如 ...
- sql server 2000备份还原数据库
转载请注明出处:http://blog.csdn.net/neochan1108/article/details/79248017 备份: -- Create the backup device fo ...
- 求N个数的最大公约数
使用 “辗转相除法” 计算2个数的最大公因数: int GCD_2(int nNum1, int nNum2) { if (nNum1 > nNum2) { nNum1 = nNum1 ^ nN ...
- WPF知识点全攻略00- 目录
知识点目录如下: 1.WPF相对WinFrom的优缺点 2.WPF体系结构 3.XAML 4.XAML页面布局 5.XAML内容控件 6.WPF中的“树” 7.Binding 8.依赖属性 9.附加属 ...
- 运行外部exe
bool CFileOperate::lauchCAD() { //启动ZWCAD CString OutputPath; STARTUPINFO si; //一些必备参数设置 memset(& ...
- 关于MessageBox返回值
风格设置MB_OK. 此时无论点击确定还是点击X,都返回IDOK.风格设置MB_OKCANCEL,点击确认返回IDOK,点击取消和X都返回IDCANCEL.风格设置MB_YESNO,点击是返回IDYE ...
- 从postgres数据库逆向生成hibernate实体类
最近整理 一个项目,原先的项目是用的oracle,然而新的项目要用postgresql.将oracle数据库导出之后,通过powerdesigner整理,导出postgresql的脚本,然后在post ...