码迷,mamicode.com
首页 > 其他好文 > 详细

poj 3940 Grey Area 浮点输出控制

时间:2015-04-03 17:27:07      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:poj   算法   

水题,直接贴代码,注意几种控制浮点输出的方法:e格式,以指数形式输出实数。g格式:自动选f格式或e格式中较短的一种输出,且不输出无意义的零。

代码:

//poj 3940
//sep9
#include <iostream>
using namespace std;
const int maxL=64;
int cnt[maxL+10];
double color[maxL];
double area[maxL];

int main()
{
	double p=0.10000;
	int n,w;
	while(scanf("%d%d",&n,&w)==2&&(n+w)){
		memset(cnt,0,sizeof(cnt));
		int max_cnt=-1;
		for(int i=0;i<n;++i){
			int x;
			scanf("%d",&x);
			++cnt[x/w];
			max_cnt=max(max_cnt,cnt[x/w]);
		}
		int L;
		for(L=maxL;L>=0;--L)
			if(cnt[L])
				break;
		for(int i=0;i<L;++i)
			color[i]=(L-i)*1.0/L;
		for(int i=0;i<L;++i)
			area[i]=cnt[i]*1.0/max_cnt;			
		double ans=0.0;
		for(int i=0;i<L;++i)
			ans+=color[i]*area[i];
		printf("%.10lg\n",ans+0.01);
	}
	return 0;	
}
 


poj 3940 Grey Area 浮点输出控制

标签:poj   算法   

原文地址:http://blog.csdn.net/sepnine/article/details/44856675

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!