杭电hdu 4153 Grey Area 简单题

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;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值