Problem Description
After hh has learned how to play Nim game, he begins to try another coin game which seems much easier.

The game goes like this: 
Two players start the game with a circle of n coins. 
They take coins from the circle in turn and every time they could take 1~K continuous coins. 
(imagining that ten coins numbered from 1 to 10 and K equal to 3, since 1 and 10 are continuous, you could take away the continuous 10 , 1 , 2 , but if 2 was taken away, you couldn't take 1, 3, 4, because 1 and 3 aren't continuous)
The player who takes the last coin wins the game. 
Suppose that those two players always take the best moves and never make mistakes. 
Your job is to find out who will definitely win the game.
 
Input
The first line is a number T(1<=T<=100), represents the number of case. The next T blocks follow each indicates a case.
Each case contains two integers N(3<=N<=109,1<=K<=10).
 
Output
For each case, output the number of case and the winner "first" or "second".(as shown in the sample output)
 
Sample Input
2
3 1
3 2
Sample Output
Case 1: first Case 2: second
 
题目意思:对于t组样例,有n硬币,编好号,组成环,每一次可以连续的取k个,谁最后取完谁赢。
解题思路:这是一道博弈问题,游戏刚开始的时候所有石子为一条环,先手不可能一次全部取完的情况下,石子就会变成一条链,然而后手只需要创建一个对称的局势就可以取得胜利,就是把这条链分成两条相等的链。我们发现当k=1时,对称局势对游戏没有任何影响,胜负取决于奇偶性;而k>=2时,后手利用对称局势可以取得胜利,先手必输。
#include<stdio.h>
int main()
{
int t,i,k,n,flag;
scanf("%d",&t);
i=;
while(t--)
{
scanf("%d%d",&n,&k);
if(k>=n)//先手胜利
{
flag=;
}
else if(k==)
{
if(n%==)///奇数先手必胜
flag=;
else
flag=;///偶数后手对称拆,必胜
}
else
flag=;///k>1时后手利用对称局势,必胜
if(flag==)
printf("Case %d: first\n",i);
else
printf("Case %d: second\n",i);
i++;
}
return ;
}

最新文章

  1. UVA, 10336 Rank the Languages
  2. [LeetCode] Heaters 加热器
  3. Sublime Text 3编译Sass - Sublime Text安装Sass插件
  4. windows命令——taskkill
  5. logging模块使用示例
  6. php WIN下编译注意问题
  7. javascript --- 再谈词法分析
  8. 专治XP正在启动就蓝屏重启一直循环
  9. JSP Workshop
  10. java实现https,https接口请求
  11. 错误信息:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序。
  12. Android_HTML解析器_jsoup
  13. 快学Scala习题解答—第一章 基础
  14. Python 基于TK 文本编辑器
  15. day4作业小代码练习
  16. jmeter发起form-data格式
  17. 不要使用Resource Owner Password Credentials
  18. C#中的session用法
  19. fiddler软件测试——Fiddler抓取https设置详解(图文)
  20. 胖子哥的大数据之路(7)- 传统企业切入核心or外围

热门文章

  1. python-基础小游戏,人在 江湖飘,哪能不挨刀,我几刀砍死你
  2. linux学习笔记一:远程连接linux服务器
  3. python从Excel中提取邮箱
  4. python 消息队列-rabbitMQ 和 redis介绍使用
  5. PHP 审计
  6. style.attr,currentStyle,getComputedStyle获取元素css
  7. Backbone.js Basics: Bringing an App to Life with Events
  8. linux内存碎片的概念
  9. 20155217 实验四《Java面向对象程序设计》实验报告
  10. # 20155337 2016-2017-2 《Java程序设计》第十周学习总结