题意:给一个环编号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 }