hdoj 5038 Grade【众数】

来源:互联网 发布:strpos php 编辑:程序博客网 时间:2024/06/01 10:03

题目:hdoj 5038 Grade


题意:给出一组数,求众数,按升序输出


分析:只考众数的概念,但是一直没有搞清楚

众数:一组数中出现次数最多的数,假如所有数据的出现次数都一样,那么这组数据没有众数。(注意:数组中只有一个数的话众数就是它本身)


AC

代码:

#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include <vector>typedef long long ll;using namespace std;const int M = 10000;int sum[10100];vector<int> v;int main(){    int T;    scanf("%d",&T);    for(int cas=1; cas<=T; cas++)    {        memset(sum,0,sizeof(sum));        int n,x;        scanf("%d",&n);        for(int i=0; i<n; i++)        {            scanf("%d",&x);            int tmp=10000 - (100 - x)*(100 - x);            sum[tmp]++;        }        int ma=max_align_t(sum);        for(int i=0; i<=M; i++)            ma=max(ma,sum[i]);        for(int i=0; i<=M; i++)        {            if(sum[i]==ma)                v.push_back(i);        }        printf("Case #%d:\n",cas);        if(v.size()*sum[v[0]] == n && v.size()!=1)            puts("Bad Mushroom");        else        {            for(int i=0;i<v.size();i++)                printf("%d%c",v[i],i==(v.size()-1)?'\n':' ');        }        v.clear();    }    return 0;}


0 0
原创粉丝点击