X-man

导航

hdu 3951 Coin Game (博弈)

题意:给你n个硬币排成一圈,编号1-n,只能翻转连续的1~k个的硬币。翻最后一枚硬币者赢。

 

思路:博弈

       1) 若k=1,则一次只能去翻一枚,奇数先手赢,偶数后手赢。

       2)若k>1:

            a: 先手一次翻完,先手赢;

            b: 先手不能翻完,第一次必定断环。只要后手一次翻完,或将其分为相等数量的两段,

               之后先手怎么操作后手就怎么操作,后手必赢。

#include<stdio.h>
int main()
{
    int T;
    int t=0;
    int n,k;
    scanf("%d",&T);
    while(T--)
    {
        t++;
        scanf("%d %d",&n,&k);
        if(k==1)
        {
            if(n%2==1)printf("Case %d: first\n",t);
            else printf("Case %d: second\n",t);
        }
        else if(k>=n)
        printf("Case %d: first\n",t);
        else
        printf("Case %d: second\n",t);

    }
    return 0;
}

 

---恢复内容结束---

posted on 2013-04-07 19:23  雨钝风轻  阅读(163)  评论(0编辑  收藏  举报