hdu 3389 Game (阶梯博弈)

#include<stdio.h>
int main()
{
    int t,n,ans;
    int i,j,x;
    scanf("%d",&t);
    for(j=1;j<=t;j++)
    {
        scanf("%d",&n);
        ans=0;
        for(i=1;i<=n;i++)
        {
            scanf("%d",&x);
            if(i%6==0||i%6==2||i%6==5)
            {
                ans^=x;
            }
        }
        printf("Case %d: ",j);
        if(ans)printf("Alice
");
        else printf("Bob
");
    }
    return 0;
}

分析:

  题意抽象出阶梯博弈,相当于%6的余数之间在相互转换,关系如下:

    3->0      0->3       

  1->2      2->1

  4->5    5->4

     而且分析(多写几组转移)得 cards全都倒1,3,4为终止状态

由阶梯博弈的性质,奇数步到终止状态的cards,想打昂与Nim博弈

原文地址:https://www.cnblogs.com/XDJjy/p/3360128.html