hdu 3951Coin Game(博弈)

题意:给一个环编号1~n,由n个硬币组成,每次只可取连续的1~k个硬币,A,B两人轮流取,问最后谁赢。

我们可以利用对称性解题,第一个玩家怎么取,第二个玩家在对称点取一样的,这样先手必败

 1 #include<iostream>
 2 #include<cstdlib>
 3 #include<stdio.h>
 4 using namespace std;
 5 int main()
 6 {
 7     int t,n,k;
 8     int count=1;
 9     scanf("%d",&t);
10     while(t--)
11     {
12         scanf("%d%d",&n,&k);
13         printf("Case %d: ",count++);
14         if(k==1&&(n%2==1)) puts("first");
15         else if(n<=k) puts("first");
16         else puts("second");
17     }
18 }
View Code

 



posted @ 2013-05-29 19:45  SStep  阅读(117)  评论(0编辑  收藏  举报