Educational Codeforces Round 65 (Rated for Div. 2)

Educational Codeforces Round 65 (Rated for Div. 2)                

A

    # include <bits/stdc++.h>
    using namespace std;
    
    int main()
    {
        int t;
        scanf("%d",&t);
        
        while(t--){
            int n;
            int a=-1;
            string s;
            scanf("%d",&n);
            cin>>s;
            for(int i=0;i<n;i++){
                if(s[i]=='8'){
                    a=i;
                    break;
                }
            }
            if(a==-1){
                printf("NO\n");
            }else{
                if((n-a)>=11){
                    printf("YES\n");
                }else{
                    printf("NO\n");
                }
            }
            
        }
        
        
        
        return 0;
    }
    

B

    # include <bits/stdc++.h>
    using namespace std;
    
    int f[50];
    int ff[7][7];
    int main()
    {
        int a1,a2,a3,a4,a5,a6;
        int aa,bb,cc,dd;
        int a[7]={0,4,8,15,16,23,42};
        
        for(int i=1;i<=6;i++){
            for(int j=1;j<=6;j++){
                ff[i][j]=a[i]*a[j];
            }
        }
        
    //    for(int i=1;i<=6;i++){
    //        for(int j=1;j<=6;j++){
    //            cout<<ff[i][j]<<" ";
    //        }
    //        cout<<endl;
    //    }
        int i1=1,j1=2;
        printf("? %d %d\n",i1,j1);fflush(stdout);
        scanf("%d",&aa);
        int i2=2,j2=3;
        printf("? %d %d\n",i2,j2);fflush(stdout);
        scanf("%d",&bb);
        int i3=3,j3=4;
        printf("? %d %d\n",i3,j3);fflush(stdout);
        scanf("%d",&cc);
        int i4=4,j4=5;
        printf("? %d %d\n",i4,j4);fflush(stdout);
        scanf("%d",&dd);
        
        int e,g,h,y,x,v;
        int flag1=0,flag2=0;
        for(int ni=1;ni<=6;ni++){
            for(int nj=(ni+1);nj<=6;nj++){
                //cout<<"@"<<endl;
                if(ff[ni][nj]==aa){
                    e=a[ni];
                    g=a[nj];
                    flag1=1;
                    break;
                }
            }
            if(flag1) break;
        }
        
        for(int ni=1;ni<=6;ni++){
            for(int nj=(ni+1);nj<=6;nj++){
                if(ff[ni][nj]==bb){
                    h=a[ni];
                    y=a[nj];
                    flag2=1;
                    break;
                }
            }
            if(flag2) break;
        }
        
        if(e==h){
            a2=e;
        }else if(e==y){
            a2=e;
        }
        if(g==h){
            a2=g;
        }else if(g==y){
            a2=g;
        }
        
        f[a2]=1;
        a1=aa/a2;
        f[a1]=1;
        a3=bb/a2;
        f[a3]=1;
        a4=cc/a3;
        f[a4]=1;
        a5=dd/a4;
        f[a5]=1;
        
        for(int i=1;i<=6;i++){
            if(f[a[i]]==0) a6=a[i];
        }
        
        printf("! %d %d %d %d %d %d\n",a1,a2,a3,a4,a5,a6);fflush(stdout);
        return 0;
    }
    

C

    #include <bits/stdc++.h>
    using namespace std;
    int pr[500005];
    int sum[500005];
    int finds(int x)
    {
        if(x == pr[x]) return x;
        pr[x] = finds(pr[x]);
        sum[pr[x]] += sum[x];
        return pr[x];
    }
    inline void ini(int x, int y)
    {
        if(x == y) return ;
        sum[x] += sum[y];sum[y] = 0;
        pr[y] = x;
    }
    int main()
    {
        int n, m, k;
        scanf("%d%d", &n, &m);
        for(register int i = 1 ; i <= n ; i ++){pr[i] = i;sum[i] = 1;}
        int x, y;
        while(m--)
        {
            scanf("%d", &k); if(!k) continue;
            scanf("%d", &x);
            for(int i = 2 ; i <= k ; i ++)
            {
                scanf("%d", &y);
                ini(finds(x), finds(y));
            }
        }
        for(register int i = 1 ; i <= n ; i ++)  printf("%d ",sum[finds(i)]);
        return 0;
    }
    



上一篇:HNUST-C语言课程设计 完成质量测试记录·


下一篇:2022.2.27 图书管理系统3---借还书登记模块