| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re: 精度啊 !!!挖了n次之后终于AC了 以下是代码可以看出对精度要求是多么苛刻In Reply To: 精度啊 !!!挖了n次之后终于AC了 以下是代码可以看出对精度要求是多么苛刻 Posted by:guangming1987 at 2009-01-18 01:39:07 > 还是对精度的了解不够深啊 真难控制
>
> #include <iostream>
> #include <algorithm>
> using namespace std;
> double t;
> __int64 num[100000],start,mid,end;__int64 sum,n,k;
> int main(){
> __int64 i;
> while(scanf("%I64d%I64d",&n,&k)!=-1){
> for(i=0;i<n;i++){
> scanf("%lf",&t);
> t*=100;
> num[i]=int(t);
> sum+=num[i];
> }
> if(sum<k){printf("0.00\n");continue;}
> sort(num,num+n);
> start=1;end=num[0];
> while(start+1<end){
> sum=0;
> mid=(start+end)/2;
> for(i=0;i<n;i++)sum+=num[i]/mid;
> if(sum<k)end=mid;
> if(sum>=k)start=mid;
> }
> sum=0;
> for(i=0;i<n;i++)sum+=num[i]/end;
> if(sum>=k)printf("%.2lf\n",end*0.01);
> else printf("%.2lf\n",start*0.01);
> }
> return 0;
> }
> /*
> 4 11
> 8.02
> 7.43
> 4.57
> 5.39
> */
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator