hdu 5038 水题 但是题意坑

http://acm.hdu.edu.cn/showproblem.php?pid=5038

就是求个众数  这个范围小 所以一个数组存是否存在的状态就行了

但是这句话真恶心  If not all the value are the same but the frequencies of them are the same, there is no mode.

其实应该是这个意思:

当频率最高的有多个的时候,

如果 所有的grade出现的频率都是相等的,那么是没有mode的

否则按照升序

当然如果频率最高的有一个,还是有mode的

//#pragma comment(linker, "/STACK:102400000,102400000")
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>
#include <iostream>
#include <iomanip>
#include <cmath>
#include <map>
#include <set>
#include <queue>
using namespace std;

#define ls(rt) rt*2
#define rs(rt) rt*2+1
#define ll long long
#define ull unsigned long long
#define rep(i,s,e) for(int i=s;i<e;i++)
#define repe(i,s,e) for(int i=s;i<=e;i++)
#define CL(a,b) memset(a,b,sizeof(a))
#define IN(s) freopen(s,"r",stdin)
#define OUT(s) freopen(s,"w",stdout)
const ll ll_INF = ((ull)(-1))>>1;
const double EPS = 1e-8;
const double pi = acos(-1.0);
const int INF = 100000000;

const int MAXN = 1e6+200;
int g[MAXN];
int a[MAXN],n,vis[MAXN];
int cnt[MAXN];
int out[MAXN];
//map<int,int>cnt;

int main()
{
    //IN("hdu5038.txt");
    int ncase,n;
    scanf("%d",&ncase);
    for(int ic=1;ic<=ncase;ic++)
    {
        CL(cnt,0);
        CL(vis,0);
        scanf("%d",&n);
        int mmax=0;//,mm=0;
        for(int i=0;i<n;i++)
        {
             scanf("%d",&a[i]);
             g[i]=10000 - (100-a[i])*(100-a[i]);
             cnt[g[i]]++;
             //vis[a[i]]=1;
             mmax=max(mmax,cnt[g[i]]);
            // mm=max(mm,g[i]);
        }
        int flag=0;
        int cc=0;
        for(int i=0;i<n;i++)
        {
            if(mmax == cnt[g[i]] && !vis[g[i]])
            {
                out[cc++]=g[i];
                vis[g[i]]=1;
            }
            if(mmax != cnt[g[i]])
            {
                flag=1;
            }
        }
        printf("Case #%d:\n",ic);
        if(flag==0 && cc>1)puts("Bad Mushroom");
        else
        {
            sort(out,out+cc);
            printf("%d",out[0]);
            int last=out[0];
            for(int i=1;i<cc;i++)
            {
                   if(out[i]!=last)
                   {
                       last=out[i];
                       printf(" %d",out[i]);
                   }
            }
            putchar('\n');
        }
    }
    return 0;
}
时间: 2024-12-24 12:53:26

hdu 5038 水题 但是题意坑的相关文章

hdu 4416 水题 浙大计算机研究生复试上机考试-2005年 可是发现自己写代码有问题

Spring3与Hibernate4整合时出现了nested exception is java.lang.NoClassDefFoundError: Lorg/hibernate/cache/CacheProvider. hibernate3的时候,用spring来控制sessionfactory用的可以是org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean,因为用的是hibernate4所以照猫画

ACdream oj C - 神奇的%系列一 (水题系列--略坑)

 C - 神奇的%系列一 Time Limit: 6000/3000 MS (Java/Others)      Memory Limit: 65536/32768 KB (Java/Others) Submit Status Problem Description 在计算机的世界里,%不是百分比,而是除法取余哟! 比如: 4 % 2 = 0 5 % 3 = 2 给你 2<=N<=100000 个数,a[1],a[2]...a[i]...a[n]. 其中:1<=a[i]<=10

HDU-1042-N!(Java大法好 &amp;&amp; HDU大数水题)

N! Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 64256    Accepted Submission(s): 18286 Problem Description Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N! Input One N in o

hdu 2710 水题

题意:判断一些数里有最大因子的数 水题,省赛即将临近,高效的代码风格需要养成,为了简化代码,以后可能会更多的使用宏定义,但是通常也只是快速拿下第一道水题,涨自信.大部分的代码还是普通的形式,实际上能简化的部分也不太多 1 #include<iostream> 2 #include<cstring> 3 #include<cmath> 4 #include<cstdio> 5 using namespace std; 6 #define for0n for(i

hdu 4802 水题 算GPA 南京现场赛

http://acm.hdu.edu.cn/showproblem.php?pid=4802 今天心情不太好,因为跟一个学姐谈,她似乎保研有点被动,而我的条件其实不如她应该...祝她好运.刷道水题调整下心情 写的有点慢,因为没读题,直接看图,然后N P没考虑以及0/0的情况也没考虑,虽然1A,但是自己代码速度还可以,但是综合起来做题速度还是.... //#pragma comment(linker, "/STACK:102400000,102400000") #include <

hdu 3443(水题,公式)Shift Number

题意: 给一个数n,求最小的数生成的shift number等于n. shift number就是一个数x,x*10,x*100-..这样的和. 思路 把那个公式处理一下,其实就是X*(形如11111-.)这样的一个式子,那么找一个最大的11111-.,x就是最小了.水题 复杂度: O(len(n)) 参考code: /* #pragma warning (disable: 4786) #pragma comment (linker, "/STACK:0x800000") */ #in

Dijkstra算法---HDU 2544 水题(模板)

/* 对于只会弗洛伊德的我,迪杰斯特拉有点不是很理解,后来发现这主要用于单源最短路,稍稍明白了点,不过还是很菜,这里只是用了邻接矩阵 套模板,对于邻接表暂时还,,,没做题,后续再更新.现将这题贴上,应该是迪杰斯特拉最水的题没有之一.纯模板 */ 题目大意: 搬东西很累,想省力,给你几个点和点之间的距离:标准题型: #include<stdio.h> #include <iostream> #include<string.h> using namespace std; #

hdu 5162(水题)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5162 题解:看了半天以为测试用例写错了.这题玩文字游戏.它问的是当前第i名是原数组中的第几个. #include<stdio.h> #include<iostream> #include<string.h> #include <stdlib.h> #include<math.h> #include<algorithm> #include

hdu 4737水题

http://acm.hdu.edu.cn/showproblem.php?pid=4737 [题意]:给出a数组和m,求 f(i, j) = ai|ai+1|ai+2| ... | aj   ,f(i, j) < m的i j 对数  1 #include<iostream> 2 #include<algorithm> 3 #include<cstdio> 4 #include<cstring> 5 using namespace std; 6 #de