码迷,mamicode.com
首页 > 其他好文 > 详细

组合博弈入门(还没写好)

时间:2015-07-13 18:10:56      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

 

(1)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规
定每次至少取一个,最多取m个。最后取光者得胜。

 

(2)威佐夫博奕(Wythoff Game):有两堆各若干个物品,两个人轮流从某一堆或同
时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。

(3)尼姆博奕(Nimm Game):有三堆各若干个物品,两个人轮流从某一堆取任意多的
物品,规定每次至少取一个,多者不限,最后取光者得胜。

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1907

简单分析:  这个题分两种情况。 各种糖果数量全部为1。 那么, 每次减少一堆, 由n的奇偶性便可判断出结果。 另一种情况便是不全为1。 那么直接用尼姆博弈的计算方法就可以得出结果。

技术分享
#include<cstdio>
int main()
{
    int a[60];
    int  T, n;
    scanf("%d", &T);
    while(T--)
    {
        scanf("%d", &n);
        int temp = 0;
        int ans;
        for(int i=0; i<n; i++)
        {
            scanf("%d", &a[i]);
            if(i==0) ans = a[i];
            else
                ans = ans^a[i];
            if(a[i]>1) temp = 1;
        }
        if(temp==0)//全是孤单堆。 
        {
            if(n%2) 
                printf("Brother\n");
            else
                printf("John\n");
                continue;
        }
         if(ans==0)
            printf("Brother\n");
        else 
            printf("John\n");
    }    
    return 0;
}
View Code

题目: http://acm.hdu.edu.cn/showproblem.php?pid=2509

和上题完全一样的题目。

 

组合博弈入门(还没写好)

标签:

原文地址:http://www.cnblogs.com/acm1314/p/4643256.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!