极值二分-精度问题-floor和ceil-挑战程序设计2
来源:互联网 发布:ubuntu做什么 编辑:程序博客网 时间:2024/06/11 03:54
依靠二分求最大值(二分一般都是极大值吧,就算满足条件还可以在区间内分啊分,分到一个最大的)
给定一些线段的长度,让你把他平均分成k份,问你分成最大的线段是多少,
要求后两位绝对精确,不要四舍五入。。。
wa了十几次,收获很大。
floor函数
floor(x),有时候也写做Floor(x),其功能是“下取整”,或者说“向下舍入”,即取不大于x的最大整数
(与 “四 舍 五入”不同,下取整是直接去掉小数部分),例如:
x=3.14,floor(x)=3
y=9.99999,floor(y)=9
在C语言的库函数中,floor函数的语法如下:
#include
#include <iostream>#include <cstdio>#include <cstdlib>#include <cmath>using namespace std;/*二分有n个线段,把他们分成k份,问最大的长度。求这种方法适合*/const int maxn=100806;double a[maxn];int m,k;bool solve(double d){ int sum=0; for(int i=0;i<m;i++) sum+=a[i]/d; return sum>=k;}int main(){ while(~scanf("%d%d",&m,&k)) { for(int i=0;i<m;i++) scanf("%lf",&a[i]); double r=200000.0; double l=0; for(int i=1;i<=100;i++) { double mid=(r+l)/2; if(solve(mid)) l=mid; else r=mid; } int res=r*100; double sum=double(res)*0.01; printf("%.2lf\n",sum); //printf("%.2f\n",floor(r*100)/100); } return 0;}
0 0
- 极值二分-精度问题-floor和ceil-挑战程序设计2
- C++ ceil 和 floor
- floor() 和 ceil()函数
- ceil()和floor()
- floor和ceil函数
- Ceil和Floor函数
- ceil和floor用法
- POJ1005 精度问题、向上取整ceil()与向下取整floor()
- oracle ceil和floor函数
- oracle ceil和floor函数
- oracle ceil和floor函数
- ceil 函数 和 floor 函数
- floor 和ceil的用法
- oracle ceil和floor函数
- oracle ceil和floor函数
- oracle ceil和floor函数
- Math.ceil和Math.floor
- floor()函数和ceil()函数
- hdu2588——GCD(欧拉函数)
- HDU 5873 Football Games【】
- C++11 新标准(三)
- const char*和char const*以及char*const
- 堆排序算法
- 极值二分-精度问题-floor和ceil-挑战程序设计2
- Relative Ranks
- css中单位px和em,rem的区别
- 选择排序
- Android MVP
- 你最宝贵的资源是什么?认知0001
- linux之访问网络文件共享服务
- 5.05作业
- 1004. 成绩排名 (20)