http://acm.hdu.edu.cn/showproblem.php?pid=4153
对于做简单题,学好英语是关键,英语看不懂,再简单的题也做不出来啊,哈哈。
本题意思是把数分成一个个等分的区间,然后输入一系列的数,分别划分到不同的区间上去,比如区间长度为10,则5属于0~9,统计每个区间上数的个数,然后根据区间数最多的那个为基准,进行计算。
//统计
#include <stdio.h>
#include <string.h>
int main()
{
int n, w, v;
int i;
int count[10], max, mod;
double ans;
while(scanf("%d%d", &n, &w)&&n+w){
mod = max = 0xffffffff;
ans = 0.01;
memset(count, 0, sizeof(count));
for(i = 0; i < n; i ++){
scanf("%d", &v);
count[v/w] ++;
if(max < v)max = v;
}
max = max/w;
for(i = 0; i <= max; i ++){
if(mod < count[i])mod = count[i];
}
for(i = max; i >= 0; i --){
ans += 1.0*i/max*count[max-i]/mod;
}
printf("%.6lf\n", ans);
}
return 0;
}