博弈
游戏必胜策略
zaiyang遇见
我走过山的时候,山不说话;
我路过海的时候,海不说话。
相遇还是不相遇,都是献给岁月的序曲 !
展开
-
HDU1848Fibonacci again and again(Mex运算+SG函数+Nim博弈)
题目链接:https://vjudge.net/contest/363960#problem/G 任何一个大学生对菲波那契数列(Fibonacci numbers)应该都不会陌生,它是这样定义的: F(1)=1; F(2)=2; F(n)=F(n-1)+F(n-2)(n>=3); 所以,1,2,3,5,8,13……就是菲波那契数列。 在HDOJ上有不少相关的题目,比如1005 Fibonac...原创 2020-03-27 22:06:36 · 168 阅读 · 0 评论 -
POJ 取石子游戏 (威佐夫博弈)
题目链接:https://vjudge.net/contest/363960#problem/H 有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。 In...原创 2020-03-24 21:36:39 · 278 阅读 · 0 评论 -
HDU1850 Being a Good Boy in Spring Festivaly(Nim博弈+状态转化)
题目链接:https://vjudge.net/contest/363960#problem/F 下面是一个二人小游戏:桌子上有M堆扑克牌;每堆牌的数量分别为Ni(i=1…M);两人轮流进行;每走一步可以任意选择一堆并取走其中的任意张牌;桌子上的扑克全部取光,则游戏结束;最后一次取牌的人为胜者。 现在我们不想研究到底先手为胜还是为负,我只想问大家: ——“先手的人如果想赢,第一步有几种选择呢?” ...原创 2020-03-24 20:58:33 · 100 阅读 · 0 评论 -
LibreOJ 取石子游戏 1(巴什博奕)
题目链接:https://loj.ac/problem/10241 算法解析: 我们从最简单的情景开始分析 当石子有1~m个时,毫无疑问,先手必胜 当石子有m+1个时,先手无论拿几个,后手都可以拿干净,先手必败 我们考虑往一般情况推广 设当前的石子数为n=k∗(m+1)+r 先手会首先拿走r个,接下来假设后手拿走x个,先手会拿走m+1−x个,这样博弈下去后手必败 设当前的石子数为n=k∗(m+1...原创 2020-01-31 19:40:44 · 288 阅读 · 0 评论 -
HDU - 5512 Pagodas(利用GCD解决博弈)
题目链接:https://vjudge.net/contest/324824#problem/E 翻译: 有N个点,刚开始给出两个点a,b(a != b) 现在有两个人再玩一个游戏,游戏规则如下:每次只能选择a + b或b -a的中的任意一个没被选中的符合[1,n]的点 ,每个点只能选一次,选到最后谁没有点可选,谁输,求赢的是谁? 分析: 对于a,b,可以看成a=gcd(a,b)*x, b=gc...原创 2019-09-09 08:48:06 · 142 阅读 · 0 评论