当前位置: 代码迷 >> 综合 >> poj 3940 Grey Area 浮点输出控制
  详细解决方案

poj 3940 Grey Area 浮点输出控制

热度:26   发布时间:2024-01-19 05:48:40.0

水题,直接贴代码,注意几种控制浮点输出的方法: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;	
}


  相关解决方案