HDU 4764 Stone(博弈)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4764
题目大意:Tang和Jiang玩石子游戏,给定n个石子,每次取[1,k]个石子,最先取完的人失败,Tang先取,求博弈。
Sample Input
1 1
30 3
10 2
0 0
Sample Output
Jiang
Tang
Jiang
分析:可以看成是谁先取完n-1个石子,谁获胜,则变成完完全全的巴什博弈,当然要考虑特殊情况。
代码如下:
1 #include<iostream> 2 # include<cstdio> 3 using namespace std; 4 int main() 5 { 6 int n,m; 7 8 while(scanf("%d%d",&n,&m)&& n&&m) 9 { 10 if(n==1) 11 { 12 printf("Jiang\n"); 13 continue; 14 } 15 if(m>=n) 16 { 17 printf("Tang\n"); 18 continue; 19 } 20 n--; 21 if(n%(m+1)) 22 printf("Tang\n"); 23 else 24 printf("Jiang\n"); 25 } 26 return 0; 27 }
把每一件简单的事情做好,就是不简单;把每一件平凡的事情做好,就是不平凡!相信自己,创造奇迹~~