zoukankan      html  css  js  c++  java
  • HDU 6020 MG loves apple

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6020

     

     题意:

    解题思路:

    实现代码:

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    
    const int MAXN=1000005;
    int a[MAXN];
    char s[MAXN];
    
    void calc(int &a3,int &E1,int &E2,int N){
        a3=0,E1=0,E2=0;
        //a3:=第一个mod3=0且非0的数前0的个数
        for(int i=1;i<=N;i++){
            if(a[i]==0)
                a3++;
            if(a[i]==3)
                break;
        }
    
        //E1:是第一个0前是否存在mod3=1的数
        //E2:是第一个0前是否存在mod3=2的数
        for(int i=1;i<=N;i++){
            if(a[i]==0)
                break;
            if(a[i]==1)
                E1=1;
            if(a[i]==2)
                E2=1;
    }
    }
    
    
    int main(){
        int T;
        scanf("%d",&T);
        while(T--){
            int N,K;
            scanf("%d%d",&N,&K);
            scanf("%s",s+1);
    
            int s0=0,s1=0,s2=0;
            for(int i=1;i<=N;i++){
                 a[i]=s[i]-'0';
                 if(a[i]%3==1) a[i]=1,s1++;
                 else if(a[i]%3==2) a[i]=2,s2++;
                 else s0++,a[i]=a[i]?3:0;
            }
            int ans=(s1+s2*2)%3;
            int a3,E1,E2,f=0;
            calc(a3,E1,E2,N);
    
            for(int C=0;C<=s2&&C<=K;C++){
                int B=((ans-C*2)%3+3)%3;
                for(;B<=s1&&B+C<=K;B+=3){
                    int A=K-B-C;
    
                    if(A<=s0){
                        if(A>=a3) f=1;
                        else if(B<s1&&E1)f=1;
                        else if(C<s2&&E2) f=1;
                    }
    
                    if(f) break;
                }
                if(f)
                    break;
            }
    
           if((N==K+1)&&s0) f=1;
           if(f) puts("yes");
           else puts("no");
        }
        return 0;
    }
  • 相关阅读:
    Leetcode 127 **
    Leetcode 145
    Leetcode 144
    Leetcode 137
    Leetcode 136
    重写nyoj2——括号匹配
    堆排序
    Leetcode 150
    【转】个人最常用的Eclipse快捷键
    Ajax编程中,经常要能动态的改变界面元素的样式
  • 原文地址:https://www.cnblogs.com/IKnowYou0/p/6670300.html
Copyright © 2011-2022 走看看