【算法笔记】bash博弈(巴什博奕)

基础版

抛一道题解释:
虽然不想,但是现实总归是现实,Lele始终没有逃过退学的命运,因为他没有拿到奖学金。现在等待他的,就是像FarmJohn一样的农田生涯。

要种田得有田才行,Lele听说街上正在举行一场别开生面的拍卖会,拍卖的物品正好就是一块20亩的田地。于是,Lele带上他的全部积蓄,冲往拍卖会。

后来发现,整个拍卖会只有Lele和他的死对头Yueyue。

通过打听,Lele知道这场拍卖的规则是这样的:刚开始底价为0,两个人轮流开始加价,不过每次加价的幅度要在1~N之间,当价格大于或等于田地的成本价 M 时,主办方就把这块田地卖给这次叫价的人。

Lele和Yueyue虽然考试不行,但是对拍卖却十分精通,而且他们两个人都十分想得到这块田地。所以他们每次都是选对自己最有利的方式进行加价。

由于Lele字典序比Yueyue靠前,所以每次都是由Lele先开始加价,请问,第一次加价的时候,
Lele要出多少才能保证自己买得到这块地呢?

首先,考虑如何是必败?
先手必败的条件就是M%(N+1)==0
先手为A,后手为B那么A取任意值,只要两人的值恰好为N+1,那么最后一次,无论先手取多少,都会留下一个数小于N
那么,如何赢?

  1. 如果M,N一样或者M小于N,那么第一次就可以胜利
  2. 如果MN大,为了保证一定赢,就要出M%(N+1)
    这其实就是强行扭转局势,扭转成先手必败时的后手,即相当于对方先手时候刚好M%(N+1)==0

升级版1——取数可以达到无穷大

大学英语四级考试就要来临了,你是不是在紧张的复习?也许紧张得连短学期的ACM都没工夫练习了,反正我知道的Kiki和Cici都是如此。当然,作为在考场浸润了十几载的当代大学生,Kiki和Cici更懂得考前的放松,所谓“张弛有道”就是这个意思。这不,Kiki和Cici在每天晚上休息之前都要玩一会儿扑克牌以放松神经。
“升级”?“双扣”?“红五”?还是“斗地主”?
当然都不是!那多俗啊~
作为计算机学院的学生,Kiki和Cici打牌的时候可没忘记专业,她们打牌的规则是这样的:
1、 总共n张牌;
2、 双方轮流抓牌;
3、 每人每次抓牌的个数只能是2的幂次(即:1,2,4,8,16…)
4、 抓完牌,胜负结果也出来了:最后抓完牌的人为胜者;
假设Kiki和Cici都是足够聪明(其实不用假设,哪有不聪明的学生~),并且每次都是Kiki先抓牌,请问谁能赢呢?
当然,打牌无论谁赢都问题不大,重要的是马上到来的CET-4能有好的状态。

这时候取牌数可以达到无穷大,那我们就从最简单的必输情况分析
余1——取1
余2——取2
余3——取1输,取2输:必输
余4——取4
余5——取2,余3,对方必输
余6——必输

猜想:当前的n为3的倍数时就必败,否则必胜
证明:当A面临n%3==0时,A必败。

即对任意的k,A拿2k张后,存在一个数t,使得对手可以拿2t张,使得剩下的牌n-2k-2t依然是3的倍数。
(此时2k+2t为3的倍数)
这个一直到最后,n==3时,A就确定为败了。

由于2k%3==1或2,所以一定可以找得到一个数t,使得2t+2k为3的倍数。
则猜想正确。

升级版2——取数范围不定(即广泛应用型)

文本,每行有三个数字n,p,q,表示一堆硬币一共有n枚,从这个硬币堆里取硬币,一次最少取p枚,最多q枚,如果剩下少于p枚就要一次取完。两人轮流取,直到堆里的硬币取完,最后一次取硬币的算输。对于每一行的三个数字,给出先取的人是否有必胜策略,如果有回答WIN,否则回答LOST。
文本长达100000行,每行的三个数字都很大,但是都是不超过65536的整数。

n % (p+q)<p时必败
对方会一直凑到两者和为p+q,这样余下的就必须一次性取完。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值