码迷,mamicode.com
首页 > 其他好文 > 详细

题解 UVa11489

时间:2019-12-01 09:16:54      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:ase   ++   code   题目   puts   要求   strlen   数字串   std   

题目大意 多组数据,每组数据给定一个整数字串,两个人每次从中抽数,要求每次剩余的数都是 \(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

标签:ase   ++   code   题目   puts   要求   strlen   数字串   std   

原文地址:https://www.cnblogs.com/whx1003/p/11964775.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!