zoukankan      html  css  js  c++  java
  • BZOJ5204: [CodePlus 2018 3 月赛]投票统计

    【传送门:BZOJ5204


    简要题意:

      有n个选手,每个选手会选择一道题投票,求出投票最多的题目个数和这些题目的编号,如果所有题目的投票数相同,则输出-1


    题解:

      直接搞

      离散化,然后判断就可以了


    参考代码:

    #include<cstdio>
    #include<cstring>
    #include<cstdlib>
    #include<algorithm>
    using namespace std;
    struct LSnode
    {
        int x,p,z;
    }A[110000],B[110000];
    int cmp(const void *x1,const void *x2)
    {
        LSnode n1=*(LSnode *)x1;
        LSnode n2=*(LSnode *)x2;
        return n1.x-n2.x;
    }
    int s[110000];
    int id[110000];
    int back[110000];
    int main()
    {
        int t;
        scanf("%d",&t);
        while(t--)
        {
            int n;
            scanf("%d",&n);
            for(int i=1;i<=n;i++)
            {
                scanf("%d",&A[i].x);
                A[i].p=i;
            }
            for(int i=1;i<=n;i++)
            {
                B[i].x=A[i].x;
                B[i].p=A[i].p;
            }
            qsort(B+1,n,sizeof(LSnode),cmp);
            B[1].z=1;
            for(int i=2;i<=n;i++)
            {
                if(B[i].x==B[i-1].x) B[i].z=B[i-1].z;
                else B[i].z=B[i-1].z+1;
            }
            int zz=0;
            for(int i=1;i<=n;i++)
            {
                A[B[i].p].z=B[i].z;
                zz=max(zz,B[i].z);
            }
            for(int i=1;i<=n;i++) back[A[i].z]=A[i].x;
            memset(s,0,sizeof(s));
            int mmax=0;
            for(int i=1;i<=n;i++)
            {
                s[A[i].z]++;
                mmax=max(mmax,s[A[i].z]);
            }
            int len=0;
            for(int i=1;i<=zz;i++) if(s[i]==mmax) id[++len]=back[i];
            if(len==zz) printf("-1
    ");
            else
            {
                printf("%d
    ",len);
                for(int i=1;i<len;i++) printf("%d ",id[i]);
                printf("%d
    ",id[len]);
            }
        }
        return 0;
    }

     

  • 相关阅读:
    连接数据库
    单行函数
    最小生成树
    hdu 1018
    组合 母函数 hdu 1171
    石子合并
    hdu 1047
    java 小综合
    java 声音处理
    并查集 1213
  • 原文地址:https://www.cnblogs.com/Never-mind/p/8530754.html
Copyright © 2011-2022 走看看