poj1064
来源:互联网 发布:php 正则截取字符串 编辑:程序博客网 时间:2024/06/05 15:11
二分搜索法
首先区间初始化上界用充分大的数INF
那么在区间[0,INF]
首先区间初始化上界用充分大的数INF
那么在区间[0,INF]
中通过二分搜索法不断缩小范围一次循环可以把区间范围缩小一半,那么我们假设缩小100次那么可达到10的-30次方的精度范围,完全满足题目中的保留两位小数
末尾的精度特别注意,这是WA的想吐血
#include<iostream>#include<cstdio>#include<cmath>using namespace std;const int MAXN=10000;const long INF=100000;double L[MAXN];int N,K;int C(double x)//绳子切成长为x时{ int num=0; for(int i=0;i<N;i++) num+=(int)(L[i]/x);//当把绳子切成x的长度,求出可以切成多少段 return num>=K;//如果切成的绳子段数大于需要切出的段数} int main(){ int i; while(cin>>N>>K){ double lb=0,ub=INF,mid; for(i=0;i<N;i++) cin>>L[i]; for(i=0;i<100;i++)//通过二分法查找精确度到达极小的范围 { mid=(lb+ub)/2; if(C(mid)) //如果(绳子长mid时)切成的绳子段数大于需要切出的段数,那么绳子可以切的更长 lb=mid; else ub=mid;//如果(绳子长mid时)切成的绳子段数小于需要切出的段数,那么绳子需要切的短一点 }printf("%.2f\n",floor(ub*100)/100);//特别注意此处的精度}return 0;}
0 0
- poj1064
- poj1064
- POJ1064
- POJ1064
- POJ1064 二分
- POJ1064二分
- 【POJ1064】二分
- poj1064(二分)
- 二分搜索--poj1064
- poj1064(贪心+浮点二分)
- POJ1064 Cable master
- POJ1064 Cable master(二分)
- poj1064 Cable master
- poj1064二分搜索
- POJ1064 Cable master 二分
- poj1064 Cable master(hdoj1551)
- POJ1064 Cable master 二分
- POJ1064 Cable master(二分)
- 博弈知识汇总
- C# 可空类型
- POJ 题目分类
- 文件特殊权限:SUID, SGID, SBIT
- NYOJ46最小乘法次数
- poj1064
- TOOLS STORE OPENCART 2.X 主题模板 ABC-0628
- AndroidManifest.xml:Android应用的清单文件
- 用面向对象和数组做出奥特曼打小怪兽(奥特曼)
- js location跳转地址的区别,火狐下刷新问题
- Python 2.7环境下安装numpy和scipy
- 程序语言基础
- GCD使用经验与技巧浅谈
- Android应用程序权限说明