
链接:http://bailian.openjudge.cn/practice/1064/
思路:二分法,但是题目数据卡了double的精度,所以一定需要把米转化为整数的厘米来算,以后一定要注意精度的问题啊!!!!
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
/************************************************************************* > File Name: wxzg.cpp > Author: > Mail: > Created Time: Fri 03 Aug 2018 08:15:34 PM CST ************************************************************************/
#include<cstdio> using namespace std;
int a[10001]; int n,m;
bool c(int d){ int sum = 0; for(int i=0;i<n;++i){ sum+=a[i]/d; } return sum>=m; }
int main(){ scanf("%d%d",&n,&m); double e; for(int i=0;i<n;++i){ scanf("%lf",&e); a[i] = 100*e; } int ub = 1e9; int lb = 0; while(ub-lb>1){ int mid = (lb+ub)/2; if(c(mid))lb = mid; else ub = mid; } if(lb<1)printf("0.00n"); else printf("%.2fn",(double)lb/100); double eee = 14.5*0.01; printf("%.2fn",eee); return 0; }
|
近期评论