巴什博弈 hdu 2149
巴什博弈基本思想:
两人在限制(1~n)的条件下,谁先达到m谁胜出。
则分情况讨论:
1. n>=m时;先手胜出;
2. m==n+1时,先手败;
3. m%n+1!=0时,先手胜;
4. m%n+1=0,先手败;
且在第三种情况时,
如果后手取k,则先手取n+1-k。
Description
虽然不想,但是现实总归是现实,Lele始终没有逃过退学的命运,因为他没有拿到奖学金。现在等待他的,就是像FarmJohn一样的农田生涯。
要种田得有田才行,Lele听说街上正在举行一场别开生面的拍卖会,拍卖的物品正好就是一块20亩的田地。于是,Lele带上他的全部积蓄,冲往拍卖会。
后来发现,整个拍卖会只有Lele和他的死对头Yueyue。
通过打听,Lele知道这场拍卖的规则是这样的:刚开始底价为0,两个人轮流开始加价,不过每次加价的幅度要在1~N之间,当价格大于或等于田地的成本价 M 时,主办方就把这块田地卖给这次叫价的人。
Lele和Yueyue虽然考试不行,但是对拍卖却十分精通,而且他们两个人都十分想得到这块田地。所以他们每次都是选对自己最有利的方式进行加价。
由于Lele字典序比Yueyue靠前,所以每次都是由Lele先开始加价,请问,第一次加价的时候,
Lele要出多少才能保证自己买得到这块地呢?
Input
本题目包含多组测试,请处理到文件结束(EOF)。每组测试占一行。
每组测试包含两个整数M和N(含义见题目描述,0<N,M<1100)
Output
对于每组数据,在一行里按递增的顺序输出Lele第一次可以加的价。两个数据之间用空格隔开。
如果Lele在第一次无论如何出价都无法买到这块土地,就输出"none"。
各位勇敢者要玩的第一个游戏是什么呢?很简单,它是这样定义的:
1、 本游戏是一个二人游戏;
2、 有一堆石子一共有n个;
3、 两人轮流进行;
4、 每走一步可以取走1…m个石子;
5、 最先取光石子的一方为胜;
如果游戏的双方使用的都是最优策略,请输出哪个人能赢。
-------------------------------
明显的巴什博弈(简单博弈)题:一种很古老的游戏,双方轮次从某一集合抽取部分,直到最后一人抽空。类似的模型有报数等。
假如我是A,对方是B,一共有n石子,一次最多拿m个,我后拿。如果我想取胜,那么在这个轮流拿石子的过程中我必须看B每次拿多少以计算我每次应该拿多少,这样预期结果是我赢;当然,B也是这样想的。这也是题目的隐含条件。
我赢,即B最后拿完石子后 剩余s个石子(s<m),这样剩下的就够归我了。退一步说,我最后第二次拿完剩L个(m<L<2m)。
那么如何计算以保证最后几步和我预期的一样呢? 现在是B先拿,然后我观察B的拿法,再应对,然后B再拿,我再应对,以此类推。B第一次拿的石子任意,但要小于等于m,假设此后我保证每次B拿的石子和我拿的石子相加为一固定值,那么n个石子里面被分成若干个该固定值,即n=p+k*M(设固定值M,p、k为常数,p、k>=0)。题目已经说明B范围为0~m,我也是,这样我们俩一起就是0~2m,那么所谓的固定值只能为m+1,这样我才能保证不管B拿多少我固定值每次都能取到。有了该固定值,我就能计算了。
首先从B开始拿,经过数个M后,剩余s(s<m)。由公式n=p+k*M,p=s。
好,现在假设B的智商和我是一样的;那么由B先拿,B一开始一定会拿p个,那么剩下来,B保证和我一起拿M,最后肯定是B赢。若p=0,那么我保证我和B每次都拿M,我就赢了。
巴什博弈基本思想:
两人在限制(1~n)的条件下,谁先达到m谁胜出。
则分情况讨论:
1. n>=m时;先手胜出;
2. m==n+1时,先手败;
3. m%n+1!=0时,先手胜;
4. m%n+1=0,先手败;
且在第三种情况时,
如果后手取k,则先手取n+1-k。
Description
虽然不想,但是现实总归是现实,Lele始终没有逃过退学的命运,因为他没有拿到奖学金。现在等待他的,就是像FarmJohn一样的农田生涯。
要种田得有田才行,Lele听说街上正在举行一场别开生面的拍卖会,拍卖的物品正好就是一块20亩的田地。于是,Lele带上他的全部积蓄,冲往拍卖会。
后来发现,整个拍卖会只有Lele和他的死对头Yueyue。
通过打听,Lele知道这场拍卖的规则是这样的:刚开始底价为0,两个人轮流开始加价,不过每次加价的幅度要在1~N之间,当价格大于或等于田地的成本价 M 时,主办方就把这块田地卖给这次叫价的人。
Lele和Yueyue虽然考试不行,但是对拍卖却十分精通,而且他们两个人都十分想得到这块田地。所以他们每次都是选对自己最有利的方式进行加价。
由于Lele字典序比Yueyue靠前,所以每次都是由Lele先开始加价,请问,第一次加价的时候,
Lele要出多少才能保证自己买得到这块地呢?
Input
本题目包含多组测试,请处理到文件结束(EOF)。每组测试占一行。
每组测试包含两个整数M和N(含义见题目描述,0<N,M<1100)
Output
对于每组数据,在一行里按递增的顺序输出Lele第一次可以加的价。两个数据之间用空格隔开。
如果Lele在第一次无论如何出价都无法买到这块土地,就输出"none"。
各位勇敢者要玩的第一个游戏是什么呢?很简单,它是这样定义的:
1、 本游戏是一个二人游戏;
2、 有一堆石子一共有n个;
3、 两人轮流进行;
4、 每走一步可以取走1…m个石子;
5、 最先取光石子的一方为胜;
如果游戏的双方使用的都是最优策略,请输出哪个人能赢。
-------------------------------
明显的巴什博弈(简单博弈)题:一种很古老的游戏,双方轮次从某一集合抽取部分,直到最后一人抽空。类似的模型有报数等。
假如我是A,对方是B,一共有n石子,一次最多拿m个,我后拿。如果我想取胜,那么在这个轮流拿石子的过程中我必须看B每次拿多少以计算我每次应该拿多少,这样预期结果是我赢;当然,B也是这样想的。这也是题目的隐含条件。
我赢,即B最后拿完石子后 剩余s个石子(s<m),这样剩下的就够归我了。退一步说,我最后第二次拿完剩L个(m<L<2m)。
那么如何计算以保证最后几步和我预期的一样呢? 现在是B先拿,然后我观察B的拿法,再应对,然后B再拿,我再应对,以此类推。B第一次拿的石子任意,但要小于等于m,假设此后我保证每次B拿的石子和我拿的石子相加为一固定值,那么n个石子里面被分成若干个该固定值,即n=p+k*M(设固定值M,p、k为常数,p、k>=0)。题目已经说明B范围为0~m,我也是,这样我们俩一起就是0~2m,那么所谓的固定值只能为m+1,这样我才能保证不管B拿多少我固定值每次都能取到。有了该固定值,我就能计算了。
首先从B开始拿,经过数个M后,剩余s(s<m)。由公式n=p+k*M,p=s。
好,现在假设B的智商和我是一样的;那么由B先拿,B一开始一定会拿p个,那么剩下来,B保证和我一起拿M,最后肯定是B赢。若p=0,那么我保证我和B每次都拿M,我就赢了。