HDU 5038 Grade
2015-08-26 20:53
351 查看
首先给你N个数w[i[,然后根据公式s=10000-(100-w)^2,来求出每个s的值,
然后根据s的每个值出现的频率,来求出最大频率的值是多少,如果计算出的s的每个值出现的频率
都相同的话便输出“Bad Mushroom”,否则输出出现频率出现最高的那个值为多少,如果频率出现次数
最高的值有多个那么便按照升序输出、 根据题意写代码便可、
AC代码:
然后根据s的每个值出现的频率,来求出最大频率的值是多少,如果计算出的s的每个值出现的频率
都相同的话便输出“Bad Mushroom”,否则输出出现频率出现最高的那个值为多少,如果频率出现次数
最高的值有多个那么便按照升序输出、 根据题意写代码便可、
AC代码:
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int maxn=1100000; int n,m; int k; int v[maxn]; int w[maxn]; int Msq[maxn]; int main() { int T; scanf("%d",&T); int kakaka=1; while(T--){ m=0; scanf("%d",&n); memset(w,0,sizeof(w)); memset(v,0,sizeof(v)); for(int i=0;i<n;i++){ scanf("%d",&Msq[i]); int s = 10000-(100-Msq[i])*(100-Msq[i]); if(w[s]==0) m++; w[s]++; v[s]++; } sort(w,w+10000); sort(Msq,Msq+n); int falg=0; int tmd=0; for(int i=0;i<n-1;i++){ if(Msq[i]!=Msq[i+1]) tmd=1; } for(int i=0;i<=10000;i++){ if(v[i]) falg++; } if(falg==1){ if(tmd==1) printf("Case #%d:\nBad Mushroom\n",kakaka++); else{ printf("Case #%d:\n",kakaka++); for(int i=0;i<=10000;i++){ if(v[i]!=0){ printf("%d\n",i); break; } } } } else { int mlb=0; for(int i=0;i<=10000;i++){ if(v[i]>mlb) mlb=v[i]; } int cnd=0; for(int i=0;i<=10000;i++){ if(v[i]!=0&&v[i]==mlb) cnd++; } if(cnd*mlb==n) printf("Case #%d:\nBad Mushroom\n",kakaka++); else{ printf("Case #%d:\n",kakaka++); for(int i=0;i<=10000;i++){ if(v[i]==mlb&&cnd>1){ cnd--; printf("%d ",i); } else if(v[i]==mlb&&cnd==1){ printf("%d\n",i);break; } } } } } return 0; }
相关文章推荐
- 数据结构Java实现03----单向链表的插入和删除
- git常用命令
- IplImage的相关知识
- HDU 4687 Boke and Tsukkomi(一般图匹配|带花树)
- 【Apache】ab工具
- bitmap转化为file
- centos6.7安装图文教程
- zoj2156 Charlie's Change 完全背包+路径记录
- printf函数参数压栈顺序
- BZOJ 2302 HAOI2011 Problem c 动态规划
- IP协议头格式分析
- Linux脚本编写之sed用法
- python进制转换(读取纯二进制文件内容)
- C/C++编程题之渊子赛马
- hello word
- [leetcode] 228.Summary Ranges
- 8-26
- iOS应用程序生命周期
- LeetCode题解:Balanced Binary Tree
- for循环输出<九九乘法表>