zoukankan      html  css  js  c++  java
  • hdoj5832【模拟】

    主要还是一个10001的倍数的问题;

    队友的思路:
    01
    1个数*10001,最后四位是这个数的后四位
    比如
    521456
    10001
    521456
    521456
    9 5215081456
    从后面for过来,如果i比前面4个大,前第四位要+10,前第五位-1,
    否则直接减,最后都会变成0,如果成立的话

    比赛时的挫code…….

    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<vector>
    #include<queue>
    #include<stack>
    #include<map>
    #include<algorithm>
    #include<string>
    using namespace std;
    const int N=10001000;
    #define ll long long
    #define mod 10000007
    int n,m;
    char s[N];
    int main()
    {
        int k = 1;
        while(~scanf("%s",s))
        {
            printf("Case #%d: ",k++);
            int len = strlen(s);
            if(s[0] == '0' && len == 1)
            {
                printf("YES
    ");
                continue;
            }
            int flag = 0;
            for(int i = len-1; i >= 4; i--)
            {
                if(s[i] != '0')
                {
                    if(s[i-4] >= s[i])
                    {
                        s[i-4] = s[i-4] - (s[i]-'0');
                        s[i] = '0';
                    }
                    else
                    {
                        s[i-4] = s[i-4]+10-(s[i]-'0');
                        s[i] = '0';
                        s[i-5]--;
                    }
                }
            }
            for(int i = 0; i < len; i++)
            {
                if(s[i] != '0')
                    flag = 1;
            }
            if(flag == 1)
                printf("NO
    ");
            else
                printf("YES
    ");
    
        }
        return 0;
    }
  • 相关阅读:
    20151124 Jquery UI form 表单变成dialog
    如何创建windows xp 虚拟机
    mySQL 从删库到跑路
    CF962D Merge Equals
    hihocoder1718 最长一次上升子序列
    2018微软实习笔试一道dp题目总结
    poj3783 Balls
    CF961E Tufurama
    蓝桥杯 高僧斗法
    蓝桥杯 国王的烦恼
  • 原文地址:https://www.cnblogs.com/keyboarder-zsq/p/5934875.html
Copyright © 2011-2022 走看看