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) ...
随机推荐
- Java 中 i++和++i的区别
public class Test{ public static void main(String [] args){ int i = 1; int s = ++i; int x= i++; Syst ...
- json字符串和字典类型的相互转换
在开发过程中,有时候需要将json字符串转为字典类型,反之亦然,通常采用.Net的开源类库Newtonsoft.Json进行序列化,这里我也是采用这个,不过我更喜欢写扩展方法方便在项目的调用. 首先新 ...
- ASP.NET MVC Identity 兩個多個連接字符串問題解決一例
按照ASP.NET MVC Identity建立了一個用戶權限管理模塊,由于還要加自己已有的數據庫,所以建立了一個實體模型,建立了之后,發現登錄不了: 一直顯示“Login in failed for ...
- jQuery Validate自定义各种验证方法(转)
一.封装自定义验证方法-validate-methods.js /***************************************************************** j ...
- iOS中使用 Reachability 检测网络区分手机网络类型 WiFi 和2 3 4 G
如果你想在iOS程序中提供一仅在wifi网络下使用(Reeder),或者在没有网络状态下提供离线模式(Evernote).那么你会使用到Reachability来实现网络检测. 写本文的目的 了解Re ...
- SQL的top 100 percent用法
sql="select top 30 * from data where title='"&title1&"' order by id desc" ...
- Oracle Recycle Bin
开启回收站RECYCLEBIN=ON,默认开启 ALTER SYSTEM SET RECYCLEBIN=OFF SCOPE=SPFILE; 一.从回收站还原表 还原删除的表和从属对象. 如果多个回收站 ...
- nginx 的编译安装及基本操作
下载nginx [root@nginx ~]# wget http://nginx.org/download/nginx-1.14.0.tar.gz --2019-05-02 21:52:23-- h ...
- 在CNN网络中roi从原图映射到feature map中的计算方法
在使用fast rcnn以及faster rcnn做检测任务的时候,涉及到从图像的roi区域到feature map中roi的映射,然后再进行roi_pooling之类的操作.比如图像的大小是(600 ...
- ERROR: HHH000091: Expected type: java.sql.Timestamp, actual value: java.lang.Integer
在将MySql的数据对应到Java的实体类的时候, 遇到了错误 关键点: Hibernate从mysql数据库查出来的Timestamp类型的数据, 会被Hibernate(或者是数据库连接池Drui ...