典型博弈论问题:
问题模型:只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个,最后取光者得胜。
解决思路:当n=m+1时,由于一次最多只能取m个,所以无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜,所以当一方面对的局势是n%(m+1)=0时,其面临的是必败的局势。所以当n=(m+1)*r+s,(r为任意自然数,s≤m)时,如果先取者要拿走s个物品...
分类:
其他好文 时间:
2015-08-26 10:47:03
阅读次数:
174
巴什博奕有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个.最后取光者得胜(注:如果n=m+1无论如何后者胜)先取者保持给对手留下(m+1)的倍数,就能最后获胜**********************************************************...
分类:
其他好文 时间:
2015-07-31 23:18:40
阅读次数:
153
见代码,思路清晰#includeusing namespace std;int main(){ int m, n; vectorV; while( cin>>m>>n ) { if( n>=m ) ...
分类:
其他好文 时间:
2015-07-15 22:12:26
阅读次数:
164
(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规 定每次至少取一个,最多取m个。最后取光者得胜。 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个, 后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果 n=(...
分类:
其他好文 时间:
2015-07-15 01:17:04
阅读次数:
155
(1)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。(2)威佐夫博奕(Wythoff Game):有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。(3)尼...
分类:
其他好文 时间:
2015-07-13 18:10:56
阅读次数:
143
才直到这种问题叫巴什博奕
换是老问题
多了一个第一次报价的输出取值
我分了两种情况
1.N》=M时 ,应该是输出M,M+1,...N
2.N
(s来源于公式M%(N+1) == s)
#include
int main()
{
int M,N;
while(scanf("%d%d",&M,&N)!=EOF){
if(M%(N+1)==0) printf...
分类:
其他好文 时间:
2015-06-02 22:03:25
阅读次数:
218
#include
int main()
{
int C,n,m;
scanf("%d",&C);
while(C--){
scanf("%d%d",&n,&m);
if(n%(m+1)==0) printf("Rabbit\n");
else printf("Grass\n");
}
return 0;
}...
分类:
其他好文 时间:
2015-06-02 22:00:56
阅读次数:
131
巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)*....
分类:
其他好文 时间:
2015-05-09 18:51:25
阅读次数:
226
题目传送:Brave Game
介绍:
巴什博奕(Bash Game):
首先我们来玩一个比较古老的报数游戏。A和B一起报数,每个人每次最少报一个,最多报4个。轮流报数,看谁先报到30.
如果不知道巴什博弈的可能会觉得这个是个有运气成分的问题,但是如果知道的人一定知道怎样一定可以赢。
比如A先报数的话,那么B一定可以赢(这里假定B知道怎么正确的报数)
B可以这样报数,每次报5-...
分类:
其他好文 时间:
2015-05-02 09:39:58
阅读次数:
99
没什么好说的,一道水题。 1 #include 2 3 int main() 4 { 5 int n, m; 6 while(scanf("%d%d", &n, &m) == 2) 7 { 8 if(n <= m) 9 {10 ...
分类:
其他好文 时间:
2015-04-11 19:27:17
阅读次数:
166