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

[FAFU 1292]博弈论,组合游戏,取石游戏

时间:2014-09-16 10:40:20      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:blog   http   io   os   ar   strong   for   div   sp   

http://acm.fafu.edu.cn/problem.php?id=1292

 

这题的原型就是《由感性认识到理性认识——透析一类搏弈游戏的解答过程》这篇论文介绍的取石游戏C

 

  • 游戏C:

甲乙两人面对若干排石子,其中每一排石子的数目可以任意确定。例如图2所示的初始局面:共n=3排,其中第一排的石子数a1=7,第二排石子数a2=3,第三排石子数a3=3。两人轮流按下列规则取走一些石子,游戏的规则如下:

Ø  每一步必须从某一排中取走两枚石子;

Ø  这两枚石子必须是紧紧挨着的;

Ø  如果谁无法按规则取子,谁就是输家。

 

下面直接给出代码:

#include<cstdio>
#include<cstring>
using namespace std;
int sg[101];
bool me[101];
void getsg()
{
    for(int i=0;i<=100;++i)
    {
        memset(me,1,sizeof(me));
        for(int j=0;j<=((i-2)>>1);++j)
            me[sg[j]^sg[i-2-j]]=0;
        for(int j=0;j<=100;++j)
        {
            if(me[j]){
                sg[i]=j;
                break;
            }
        }
    }
}
int main()
{
    int n,a;
    getsg();
    while(~scanf("%d",&n))
    {
        int res=0;
        for(int i=0;i<n;++i)
        {
            scanf("%d",&a);
            res^=sg[a];
        }
        if(res)
            puts("gabo");
        else
            puts("tang");
    }
    return 0;
}

[FAFU 1292]博弈论,组合游戏,取石游戏

标签:blog   http   io   os   ar   strong   for   div   sp   

原文地址:http://www.cnblogs.com/WanBOSS/p/3974292.html

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