题解 UVa11489
Posted whx1003
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了题解 UVa11489相关的知识,希望对你有一定的参考价值。
题目大意 多组数据,每组数据给定一个整数字串,两个人每次从中抽数,要求每次剩余的数都是 (3) 的倍数,请求出谁会获胜。
分析 由于 (p-1) 的因数的倍数在 (p) 进制下的各位数字之和仍是其倍数,所以可以知道从第一次取完之后每次都要取 (3) 的倍数,统计即可。
#include<bits/stdc++.h>
using namespace std;
int T, len;
int a[3];
char s[1005];
int main()
{
scanf("%d", &T);
int t = 0;
while(++t <= T) {
a[0] = a[1] = a[2] = 0;
scanf("%s", s);
len = strlen(s);
for(int i = 0; i < len; ++i)
++a[(s[i] - '0') % 3];
printf("Case %d: ", t);
if(--a[(a[1] + 2 * a[2]) % 3] < 0) puts("T");
else puts(a[0] & 1 ? "T" : "S");
}
}
以上是关于题解 UVa11489的主要内容,如果未能解决你的问题,请参考以下文章