• uva11489


    从S开始时只能是两种情况:

    1.现在总和已经是3的倍数了,那么因为每人每次只能拿走一个数,要保持拿走之后依然是3的倍数,那么就只能拿3,6,9这类数,用num统计一下,看看num奇偶性就知道谁最后拿了。

    2.现在总和不是3的倍数,那么要么除3余1要么除3余2,就用num1和num2分别统计两种单个数的数目,看S第一下能不能拿完以后变成3的倍数,能就是按第一种情况分析了,不能T就赢了。

    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    #include<string>
    #include<cmath>
    #include<map>
    #include<set>
    #include<vector>
    #include<algorithm>
    #include<stack>
    #include<queue>
    #include<cctype>
    #include<sstream>
    using namespace std;
    #define pii pair<int,int>
    #define LL long long int
    const double eps=1e-10;
    const int INF=1000000000;
    const int maxn=100+10;
    int T,num,num1,num2,sum;
    string s;
    int main()
    {
        //freopen("in1.txt","r",stdin);
        //freopen("out.txt","w",stdout);
        cin>>T;
        int cas=1;
        while(T--)
        {
            cin>>s;
            sum=num=0;
            num1=num2=0;
            int l=s.length();
            for(int i=0; i<l; i++)
            {
                int k=s[i]-'0';
                sum+=k;
                if(k%3==0)
                {
                    num++;
                }
                else if(k%3==1)
                {
                    num1++;
                }
                else num2++;
            }
            if(sum%3==0)
            {
                if(num%2==0) printf("Case %d: T
    ",cas++);
                else printf("Case %d: S
    ",cas++);
            }
            else if(sum%3==1)
            {
                if(num1>0)
                {
                    if(num%2==0) printf("Case %d: S
    ",cas++);
                    else printf("Case %d: T
    ",cas++);
                }
                else
                {
                    printf("Case %d: T
    ",cas++);
                }
            }
            else
            {
                if(num2>0)
                {
                    if(num%2==0) printf("Case %d: S
    ",cas++);
                    else printf("Case %d: T
    ",cas++);
                }
                else
                {
                    printf("Case %d: T
    ",cas++);
                }
            }
        }
        //fclose(stdin);
        //fclose(stdout);
        return 0;
    }
  • 相关阅读:
    Web框架
    Java并发编程:Callable、Future和FutureTask
    5分钟了解Mockito
    用IntelliJ IDEA创建Gradle项目简单入门
    QrenCode : linux命令行下生成二维码图片
    git 撤销commit
    curl网站开发指南
    H2数据库攻略
    Guice入门
    linux debian 时间设置中无法选择“自动设定时间和日期”
  • 原文地址:https://www.cnblogs.com/zywscq/p/4265720.html
Copyright © 2020-2023  润新知