首页 > 代码库 > HDU 5038 Grade北京赛区网赛1005
HDU 5038 Grade北京赛区网赛1005
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5038
解题报告:就是输入n个数w,定义s = 10000 - (100 - w)^2,问s出现频率最高的是哪些,当所有的不同的s出现频率相同时,输出Bad Mushroom,当s只有一种时,直接输出。
1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 using namespace std; 6 const int maxn = 10000; 7 8 int num[maxn+5],ans[maxn+5]; 9 int main()10 {11 int T,n,kase = 1;12 scanf("%d",&T);13 while(T--)14 {15 scanf("%d",&n);16 memset(num,0,sizeof(num));17 memset(ans,0,sizeof(ans));18 int w ,t,M = 0;19 for(int i = 0;i < n;++i)20 {21 scanf("%d",&w);22 t = 10000 - (100 - w) * (100 - w);23 num[t]++;24 M = max(M,num[t]);25 }26 int f = 0,tot = 0,tt = 0;27 for(int i = 0;i <= 10000;++i)28 if(num[i] == M)29 {30 ans[f++] = i;31 tot++;32 tt += num[i];33 }34 sort(ans,ans+f);35 printf("Case #%d:\n",kase++);36 if(tot != 1 && tt == n)37 {38 puts("Bad Mushroom");39 continue;40 }41 for(int i = 0;i < f;++i)42 printf(i == f - 1? "%d\n":"%d ",ans[i]);43 }44 return 0;45 }
HDU 5038 Grade北京赛区网赛1005
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。