zoukankan      html  css  js  c++  java
  • bzoj5204: [CodePlus 2018 3 月赛]投票统计(离散化+暴力)

    5204: [CodePlus 2018 3 月赛]投票统计

    题目:传送门 


    题解:

       谢谢niang老师的一道sui题

       离散化之后直接搞啊(打完之后还错了...)

        


    代码:

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<cstdlib>
     4 #include<cmath>
     5 #include<algorithm>
     6 using namespace std;
     7 int T;
     8 struct node
     9 {
    10     int x,y,id;
    11 }a[110000],b[110000];int s[110000],ans[110000],A[110000];
    12 bool v[110000];
    13 bool cmp(node n1,node n2){return n1.x<n2.x;}
    14 int main()
    15 {
    16     scanf("%d",&T);
    17     while(T--)
    18     {
    19         int n,m=0;scanf("%d",&n);
    20         for(int i=1;i<=n;i++)scanf("%d",&a[i].x),a[i].y=i;
    21         for(int i=1;i<=n;i++)b[i]=a[i];
    22         sort(b+1,b+n+1,cmp);
    23         b[1].id=1;
    24         for(int i=2;i<=n;i++)
    25         {
    26             if(b[i].x!=b[i-1].x)b[i].id=b[i-1].id+1;
    27             else b[i].id=b[i-1].id;
    28         }
    29         for(int i=1;i<=n;i++)a[b[i].y].id=b[i].id,m=max(m,b[i].id);
    30         for(int i=1;i<=n;i++)ans[a[i].id]=a[i].x;memset(s,0,sizeof(s));
    31         int maxx=0;for(int i=1;i<=n;i++)s[a[i].id]++,maxx=max(s[a[i].id],maxx);int len=0;
    32         for(int i=1;i<=m;i++)if(s[i]==maxx)A[++len]=ans[i];
    33         if(len==m)printf("-1
    ");
    34         else
    35         {
    36             printf("%d
    ",len);
    37             for(int i=1;i<len;i++)printf("%d ",A[i]);
    38             printf("%d
    ",A[len]);
    39         }
    40     }
    41     return 0;
    42 }
  • 相关阅读:
    leetcode 63 简单题
    leetcode 712
    500 问的数学基础
    转载一份kaggle的特征工程:经纬度、特征构造、转化率
    散度
    在线学习在CTR上应用的综述
    广告的计费方式
    矩阵2范数与向量2范数的关系
    text_CNN笔记
    F1
  • 原文地址:https://www.cnblogs.com/CHerish_OI/p/8670199.html
Copyright © 2011-2022 走看看