您的位置:首页 > 其它

2013 ACM/ICPC Asia Regional Changchun Online Stone

2013-09-28 16:51 197 查看
  题意:给你n个石头, Tang 和 Jiang依次轮流来拾取, 每次拿的数量为[  1~k ], 最后谁拿完的谁输掉比赛。

  首先考虑种特殊情况, 当n%(k+1) == 1时, 不管每次Tang拿多少(数量为x),Jiang拿(m+1-x), 最后轮到Tang的时候就只剩下一个,  所以必定是Jiang赢。

  其余的情况时(n%(k+1) != 1), Tang先从 n中拿出部分, 使得剩下的模上(k+1)等于1, 然后这又变成上面的情况, 不过变成Jiang在前面, Tang在后面, 此时必定是Tang赢。

#include<cstdio>
#include<iostream>
using namespace std;

int main(void)
{
int n, k;
while(scanf("%d%d",&n,&k), n||k)
{
if(n%(k+1) == 1)
printf("Jiang\n");
else
printf("Tang\n");
}
return 0;
}


     
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: