nim
撒旦即可
研究CV的菜狗
展开
-
poj1704(nim博弈论)
题意】从左到右有一排石子,给出石子所在的位置。规定每个石子只能向左移动,且不能跨过前面的石子。最左边的石子最多只能移动到1位置。每次选择一个石子按规则向移动,问先手是否能赢。思路:见挑战p313,已经很详细了。记住下一nim博弈论的模型,即有一堆石头x1,x2,x3...xn (xi表示第i堆石头数量),让两个人取,谁去除最后的石头谁就赢。每次至少取一个,最多只能取一堆石头。最...原创 2018-10-02 11:03:45 · 175 阅读 · 0 评论 -
NIM的证明(转载)
Nim游戏的概述:还记得这个游戏吗?给出n列珍珠,两人轮流取珍珠,每次在某一列中取至少1颗珍珠,但不能在两列中取。最后拿光珍珠的人输。后来,在一份资料上看到,这种游戏称为“拈(Nim)”。据说,它源自中国,经由被贩卖到美洲的奴工们外传。辛苦的工人们,在工作闲暇之余,用石头玩游戏以排遣寂寞。后来流传到高级人士,则用便士(Pennies),在酒吧柜台上玩。最有名的玩法,是把十二枚便士放成3、...转载 2018-10-04 10:50:53 · 737 阅读 · 0 评论 -
poj2315(可一次性操作多组的nim)
巴什博弈(Bash Game)定义:只有一堆石子,两人轮流取,最少取一个,最多取m个,最后去完者为胜。思考:①当石子个数n=0时为必败点;(根据题意得来)②当石子个数0<n<=m时为必胜点;(可以到达状态①)③当石子个数n=m+1时为必败点;(只能到达状态②)④当石子个数m+1<n<=(m+1)+m时为必胜点;(可以到达状态③)⑤当石子个数n=(...原创 2018-10-04 14:31:17 · 251 阅读 · 0 评论 -
斐波那契博弈
转自https://blog.csdn.net/dgq8211/article/details/7602807有一堆个数为n(n>=2)的石子,游戏双方轮流取石子,规则如下:1)先手不能在第一次把所有的石子取完,至少取1颗;2)之后每次可以取的石子数至少为1,至多为对手刚取的石子数的2倍。约定取走最后一个石子的人为赢家,求必败态。结论:当n为Fibonacci数的时候,先...转载 2019-04-15 19:29:46 · 111 阅读 · 0 评论 -
HDU1846(巴什博奕,证明)
题意:两个顶尖聪明的人在玩游戏,有nn个石子,每人可以随便拿1−m1−m个石子,不能拿的人为败者,问谁会胜利解析:我们从最简单的情景开始分析当石子有1−m1−m个时,毫无疑问,先手必胜当石子有m+1m+1个时,先手无论拿几个,后手都可以拿干净,先手必败当石子有m+2−2mm+2−2m时,先手可以拿走几个,剩下m+1m+1个,先手必胜我们不难发现,面临m+1m+1个石子的人一...原创 2019-04-15 19:49:38 · 151 阅读 · 0 评论 -
hdu1527(威佐夫博弈,模型学习)
威佐夫博弈:有两堆各若干个物品,两个人轮流从任意一堆中取出至少一个或者同时从两堆中取出同样多的物品,规定每次至少取一个,至多不限,最后取光者胜利。结论:首先黄金比例:r=1.618 = (sqrt(5.0) + 1) / 2,则给定两组石头堆(n,m),假设n>m,则当(n-m)*r==m时,先手输。否则后手输#include<cstdio>#include<c...原创 2019-04-15 20:40:27 · 216 阅读 · 0 评论 -
HDU1848(SG,学习,模板)
题意:今天,又一个关于Fibonacci的题目出现了,它是一个小游戏,定义如下:1、这是一个二人游戏;2、一共有3堆石子,数量分别是m, n, p个;3、两人轮流走;4、每走一步可以选择任意一堆石子,然后取走f个;5、f只能是菲波那契数列中的元素(即每次只能取1,2,3,5,8…等数量);6、最先取光所有石子的人为胜者;假设双方都使用最优策略,请判断先手的...原创 2019-04-15 23:52:34 · 134 阅读 · 0 评论 -
poj1740(博弈论,对称博弈)
题目:有若干堆石子,每一次需要从一堆石子中拿走一些,然后如果愿意的话,再从这堆石子中拿一些分给其它任意堆。不能操作的人负。解析:实际上如果n为偶数,我们就可以把ta们两两配对转换成只有两堆石子的情况按照石子数从小到大排序,两两配对成一组,组与组之间互不影响如果可以完美配对(配对后每一组都有两堆石子数相等),后手必胜如果不可以完美配对,先手可以将最多的变成和最少的相等然后...原创 2019-04-16 00:16:33 · 258 阅读 · 0 评论 -
hdu2509 Be the Winner (反尼姆博弈,好题)
题目大意:有n堆苹果,每堆Mi个。两人轮流取,每次可以从一堆苹果中取任意连续个苹果,最后取光者为输。Fra先下,问是否可以获胜。证明:需要特别说明一下:S2一定有办法转化为T2。自己稍微试试就明白了#include<bits/stdc++.h>using namespace std;const int N=109;int a[N];int main()...原创 2019-04-12 19:58:18 · 336 阅读 · 0 评论