zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    大数据的分页优化的思路
    escape()、encodeURI()、encodeURIComponent()区别详解
    PHP面向对象知识总结
    mysql 简单优化规则
    mysql语句内部优化
    js onmouseout的冒泡事件
    Android 开机自启动
    查看 AndroidManifest.xml文件
    Hierarchy Viewer显示视图性能指标
    Profile GPU rendering
  • 原文地址:https://www.cnblogs.com/zywscq/p/4265720.html
Copyright © 2011-2022 走看看