随笔分类 -  acm-博弈

阶梯博弈(没怎么搞懂)
摘要:首先是对阶梯博弈的阐述...博弈在一列阶梯上进行...每个阶梯上放着自然数个点..两个人进行阶梯博弈...每一步则是将一个集体上的若干个点( >=1 )移到前面去..最后没有点可以移动的人输..如这就是一个阶梯博弈的初始状态 2 1 3 2 4 ... 只能把后面的点往前面放...如何来分析这个问题... 阅读全文

posted @ 2014-07-16 17:59 后端bug开发工程师 阅读(2006) 评论(0) 推荐(0)

hdu 2177(威佐夫博奕)
摘要:题意:容易理解,在威佐夫博奕的基础上新增加了一条要求:就是如果在赢得条件下,输出第一步怎么走。分析:使用暴力判断,详细见代码。代码:#include#include#includeint a, b;int main(){ double x = (1 + sqrt(5.0))/2.0; i... 阅读全文

posted @ 2014-06-07 17:33 后端bug开发工程师 阅读(897) 评论(0) 推荐(0)

hdu 3951(博弈规律)
摘要:题意:给定围成一个圈的硬币n枚,然后每次可以取出连续的1-k枚,谁取完最后一枚谁就获胜。分析:对于第二个人当第一个人取完后,他可以取成对称的形式,所以第二个人必胜。代码:#include#include#includeint main(){ int i,n,k,T; scanf("%d"... 阅读全文

posted @ 2014-06-03 21:53 后端bug开发工程师 阅读(204) 评论(0) 推荐(0)

hdu 3537(博弈,翻硬币)
摘要:题意:给定了每个正面朝上的硬币的位置,然后每次可以翻1,2,3枚硬币,并且最右边的硬币开始必须是正面朝上的。分析:约束条件6:每次可以翻动一个、二个或三个硬币。(Mock Turtles游戏)初始编号从0开始。当N==1时,硬币为:正,先手必胜,所以sg[0]=1.当N==2时,硬币为:反正,先手必... 阅读全文

posted @ 2014-06-02 22:19 后端bug开发工程师 阅读(1599) 评论(0) 推荐(0)

hdu 3032(博弈sg函数)
摘要:题意:与原来基本的尼姆博弈不同的是,可以将一堆石子分成两堆石子也算一步操作,其它的都是一样的。分析:由于石子的堆数和每一堆石子的数量都很大,所以肯定不能用搜索去求sg函数,现在我们只能通过找规律的办法求得sg的规律。通过打表找规律可以得到如下规律:if(x%4==0) sg[x]=x-1; if(x... 阅读全文

posted @ 2014-05-26 21:31 后端bug开发工程师 阅读(977) 评论(0) 推荐(0)

hdu 2897(威佐夫博奕变形)
摘要:题意:容易理解。分析:当n%(p+q)==0时,先取者必胜,必胜方案:先取q,然后对方去x个,先取者就取(p+q-x)个,最后对方就必须取玩p个,当n%(p+q)==r(rp&&r#include#includeint main(){ int n, p, q; while(scanf("... 阅读全文

posted @ 2014-05-15 23:02 后端bug开发工程师 阅读(276) 评论(0) 推荐(0)

hdu 1527(威佐夫博奕)
摘要:题意:容易理解。分析:威佐夫博奕的模板题。代码实现:#include#include#includeint main(){ int n,m,temp,k; while(scanf("%d%d",&n,&m)!=EOF) { if(n<m) { ... 阅读全文

posted @ 2014-05-15 17:07 后端bug开发工程师 阅读(1852) 评论(0) 推荐(0)

hdu 2516(斐波拉切博弈)
摘要:题意:容易理解。分析:通过枚举寻找规律,这就是做1堆或者2堆石子博弈的技巧!当为2或者3时,肯定是第二个人赢,当为4时,先去一个石子,然后当对方面临3,于是第一个人赢,当为5时,取1时,第二个人赢,取2时也是第二个人赢。。。,于是为5时也是滴二个人赢。。。多枚举几个之后就会发现只要满足斐波拉切数列的... 阅读全文

posted @ 2014-05-14 21:41 后端bug开发工程师 阅读(268) 评论(0) 推荐(0)

博弈起步
摘要:http://blog.csdn.net/acm_cxlove/article/details/7854526 阅读全文

posted @ 2014-01-04 14:53 后端bug开发工程师 阅读(157) 评论(0) 推荐(0)

导航