zoukankan      html  css  js  c++  java
  • 2019牛客暑期多校训练营(第六场)

    #include<bits/stdc++.h>
     
    using namespace std;
    double f1;
    char s[2020],t[300];
    int f[10000],k,a[100];
    int main()
    {
        int T;
        scanf("%d",&T);
        while (T--)
        {
            memset(f,0,sizeof(f));memset(a,0,sizeof(a));
            k++;
            printf("Case #%d: ",k);
            scanf("%s",s);
            scanf("%s",t);
            for (int i=0; i<26; i++)
            {
                if (t[i]=='h') f[i]=1;
                if (t[i]=='d') f[i]=2;
                if (t[i]=='w') f[i]=3;
            }
            int len=strlen(s);
            for (int i=0; i<len; i++)
            {
                a[f[s[i]-'a']]++;
            }
            f1=a[1]*1.0/len;
            if (f1>=0.25)
            {
                printf("Harmful
    ");
            }
            else if (f1<=0.1)
            {
                printf("Recyclable
    ");
            }
            else
            {
                if (a[2]>=a[3]*2)
                {
                    printf("Dry
    ");
                }
                else
                {
                    printf("Wet
    ");
                }
            }
        }
    }
    

    #include<bits/stdc++.h>
    using namespace std;
    map<string,char>mp;
    string s,s1,ss,c[1000],c1[1000],a[1000000],S,ans;
    int main()
    {
        int T;
        mp["0000"]='0';
        mp["0001"]='1';
        mp["0010"]='2';
        mp["0011"]='3';
        mp["0100"]='4';
        mp["0101"]='5';
        mp["0110"]='6';
        mp["0111"]='7';
        mp["1000"]='8';
        mp["1001"]='9';
        mp["1010"]='a';
        mp["1011"]='b';
        mp["1100"]='c';
        mp["1101"]='d';
        mp["1110"]='e';
        mp["1111"]='f';
        scanf("%d",&T);
        for(int t=1; t<=T; t++)
        {
            printf("Case #%d: ",t);
            cin>>s;
            for (int k=0; k<8; k++)
            {
                s1="";
                for (int i=0; i<4; i++)
                {
                    ss="";
                    for (int j=0; j<4; j++)
                    {
                        ss+=s[k*16+i*4+j];
                    }
                    s1+=mp[ss];
                }
                c[k]=s1;
            }
            for (int i=0; i<8; i++)
            {
                c1[i]="";
                int j;
                for (j=0; j<4; j++)
                {
                    if (c[i][j]!='0')
                    {
                        break;
                    }
                }
                if (j==4)
                {
                    c1[i]="0";
                }
                else
                {
                    for (int k=j; k<4; k++)
                    {
                        c1[i]+=c[i][k];
                    }
                }
            }
     
            int cnt=1;
            a[0]="";
            for (int i=0;i<8;i++){
                if (i!=7){
                    a[0]=a[0]+c1[i]+":";
                }else{
                     a[0]=a[0]+c1[i];
                }
            }
            for (int i=0; i<8; i++)
            {
                for (int j=7; j>=i; j--)
                {
                    int k;
                    if (j-i+1>=2)
                    {
                        for (k=i; k<=j; k++)
                        {
                            if (c1[k]!="0")
                            {
                                break;
                            }
                        }
                        if (k==j+1)
                        {
                            S="";
                            for (int l=0; l<i; l++)
                            {
                                S=S+c1[l]+":";
                            }
                            if (i==0)
                            {
                                S=S+":";
                            }
                            S=S+":";
                            for (int l=j+1; l<8; l++)
                            {
                                S=S+c1[l];
                                if (l!=7)
                                {
                                    S=S+":";
                                }
                            }
                            a[cnt++]=S;
                        }
     
                    }
                }
            }
            int len=10000;
            ans="";
            for (int i=0; i<cnt; i++)
                if (a[i].length()<len)
                {
                    len=a[i].length();
                    ans=a[i];
                }
                else
                {
                    if (a[i].size()==len)
                    {
                        if (a[i]<ans)
                        {
                            ans=a[i];
                        }
                    }
                }
            cout<<ans<<endl;
        }
        return 0;
    }

    #include<bits/stdc++.h>
     
    using namespace std;
    int n,b[10000],v[100000],k,l,r;
    bool check(int x)
    {
        int f,t=0;
        for (int i=n; i>=1; i--)
        {
            f=0;
            for (int j=1; j<=t; j++)
            {
                if (b[j]+v[i]<=x)
                {
                    b[j]+=v[i];
                    f=1;
                    break;
                }
            }
            if (f==0)
            {
                b[++t]=v[i];
                if (t>k) return 0;
            }
        }
        return 1;
    }
    int main()
    {
        int T;
        scanf("%d",&T);
        for (int t=1; t<=T; t++)
        {
            printf("Case #%d: ",t);
            scanf("%d%d",&n,&k);
            for (int i=1; i<=n; i++)
            {
                scanf("%d",&v[i]);
            }
            sort(v+1,v+1+n);
            l=v[n];
            r=1000000;
            while (l<r)
            {
                int mid=(l+r)>>1;
                if (check(mid))
                {
                    r=mid;
                }
                else
                {
                    l=mid+1;
                }
            }
            for (int i=max(1,l-60);; i++)
            {
                if (check(i))
                {
                    printf("%d
    ",i);
                    break;
                }
     
            }
        }
        return 0;
    }
    

    #include<bits/stdc++.h>
    using namespace std;
    int n,f[2010][2010],tt;
    int main()
    {
        int T;
        scanf("%d",&T);
        for (int t=1; t<=T; t++)
        {
            printf("Case #%d: ",t);
            scanf("%d",&n);
            if (n==1)
            {
                puts("Yes");
                puts("0");
                puts("1");
                continue;
            }
            if (n%4==2||n%4==3)
            {
                puts("No");
                continue;
            }
            puts("Yes");
            if (n%4==0)
            {
                for (int i=1; i<=n/2; i++)
                {
                    for (int j=1; j<=n; j++)
                    {
                        tt=i+j;
                        if (tt>n)
                        {
                            tt-=n;
                        }
                        f[tt][j]=j&1;
                        f[j][tt]=j&1;
                    }
                }
                for (int i=1; i<=n; i++)
                {
                    for (int j=1; j<=n; j++)
                    {
                        printf("%d",f[i][j]);
                    }
                    printf("
    ");
                }
                for (int i=1; i<n; i++)
                {
                    printf("%d",i+1);
                    if (i!=n)
                    {
                        printf(" ");
                    }
                    else
                    {
                        printf("
    ");
                    }
                }
                printf("1
    ");
            }
            else
            {
                n--;
                for (int i=1; i<=n/2; i++)
                {
                    for (int j=1; j<=n; j++)
                    {
                        tt=i+j;
                        if (tt>n)
                        {
                            tt-=n;
                        }
                        f[tt][j]=j&1;
                        f[j][tt]=j&1;
                    }
                }
                n++;
                for (int i=1;i<n;i++){
                    f[i][n]=f[n][i]=i&1;
                }
                for (int i=1; i<=n; i++)
                {
                    for (int j=1; j<=n; j++)
                    {
                        printf("%d",f[i][j]);
                    }
                    printf("
    ");
                }
                for (int i=1; i<n-1; i++)
                {
                    printf("%d ",i+1);
                }
                printf("1 %d
    ",n);
            }
        }
    }
    

    #include<bits/stdc++.h>
    
    using namespace std;
    int ans[20],n;
    int a[]= {0,31,28,31,30,31,30,31,31,30,31,30,31};
    string s[100010];
    int f(char c)
    {
        return ans[c-'A'];
    }
    
    bool check(int id)
    {
        int year=f(s[id][0])*1000+f(s[id][1])*100+f(s[id][2])*10+f(s[id][3]);
        int mouth=f(s[id][5])*10+f(s[id][6]);
        int day=f(s[id][8])*10+f(s[id][9]);
        if (year%400==0||(year%4==0&&year%100!=0))
        {
            a[2]=29;
        }
        if (year<1600||year>9999||mouth>12||mouth<1||day<1||day>a[mouth])
        {
            return 0;
        }
        if(mouth<=2)
        {
            mouth+=12;
            year--;
        }
        int tmp=(day+mouth*2+3*(mouth+1)/5+year+year/4-year/100+year/400+1)%7;
        if (tmp==5)
        {
            return 1;
        }
        return 0;
    }
    int main()
    {
        int T;
        scanf("%d",&T);
        for (int t=1; t<=T; t++)
        {
            printf("Case #%d: ",t);
            scanf("%d",&n);
            for (int i=0; i<10; i++)
            {
                ans[i]=i;
            }
            for (int i=0; i<n; i++)
            {
                cin>>s[i];
            }
            sort(s,s+n);
            n=unique(s,s+n)-s;
            int f=1;
            do
            {
                int i;
                for (i=0; i<n; i++)
                {
                    if (!check(i))
                    {
                        break;
                    }
                }
                if (i==n)
                {
                    for (int i=0; i<10; i++)
                    {
                        printf("%d",ans[i]);
                    }
                    f=0;
                    puts("");
                    break;
                }
            }
            while (next_permutation(ans,ans+10));
            if (f)
            {
                puts("Impossible");
            }
        }
    }
    

      

  • 相关阅读:
    bzoj 2882: 工艺 后缀自动机
    bzoj 2002: 弹飞绵羊 Link-Cut-Tree
    bzoj 3881: [Coci2015]Divljak AC自动机
    bzoj 2553: [BeiJing2011]禁忌 AC自动机+矩阵乘法
    bzoj 3172: [Tjoi2013]单词 fail树
    bzoj 2434: 阿狸的打字机 fail树+离线树状数组
    bzoj 1030: 文本生成器 AC自动机+dp
    SAS FORMAT 逻辑库存储 【输出格式 没有找到或无法加载】解决方法
    PROC UNIVARIATE 简单示例
    SAS ODS GRAPHICS SGPLOT 画图 指存放定路径、名称、指定格式
  • 原文地址:https://www.cnblogs.com/Accpted/p/11295627.html
Copyright © 2011-2022 走看看