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
");
13             continue;
14         }
15         if(m>=n)
16         {
17             printf("Tang
");
18             continue;
19         }
20         n--;
21         if(n%(m+1))
22             printf("Tang
");
23         else
24             printf("Jiang
");
25     }
26     return 0;
27 }
原文地址:https://www.cnblogs.com/acm-bingzi/p/3346599.html