///2.假定一个解并判断是否可行
///POJ1064
/**
Q:有N条绳子,长度分别为Li,从中切割出k条长度相同的绳子,
这K条绳子最长能有多长?保留两位小数
A:
二分搜索模型。
条件C(x):=可以得到K条长度为x的绳子
问题转变为 求满足C(x)的最大x;lb=0 ub=INF
问题转变为 如何高效的判断C(x) 1.二分搜索模型:在求最优解问题上的应用
“求满足条件C(x)的最小x”->若所有的x'>=x也满足C(x),则可用二分搜索来解决 */ #include"iostream"
#include "cstdio"
#include "cmath"
using namespace std; #define MAX 100010
#define INF 0x3f3f3f3f
int N,K;
double L[MAX];
bool C(double x)
{
int num=;
for(int i=;i<N;i++)
{
num+=(int)(L[i]/x);
}
return num>=K;
}
void solve()
{
///初始化解的范围
double lb=0.0,ub=INF; ///重复循环,直到解的范围足够小
for(int i=;i<=;i++)
{
double mid=(lb+ub)/;
if(C(mid))
lb=mid;///长度还可以大点
else
ub=mid;
}
printf("%.2f\n",floor(ub*)/);///保留两位小数处理,ub代表最大符合
} int main()
{
while(~scanf("%d%d",&N,&K))
{
for(int i=;i<N;i++)
{
scanf("%lf",&L[i]);
}
solve();
}
return ;
}
/**
4 11
8.02
7.43
4.57
5.39
Sample Output 2.00
*/

最新文章

  1. edghasdz
  2. ios 真机调试 could not find Developer Disk Image
  3. 记、基于react-router的单页应用
  4. (原)Java初始化过程
  5. bootstrap-dropdown
  6. Java实习生面试总结
  7. 你或许不了解的C++函数调用(1)
  8. php读取excel文件 更新修改excel
  9. -webkit-appearance: none;去处select默认小箭头样式
  10. jqgrid使用sql row_number进行分页
  11. 【转】 UIView如何管理它的子视图
  12. 数组在C++和java中的区别
  13. hbase port
  14. angularjs 怎么获取鼠标焦点 鼠标移入显示浮动的div提示框
  15. error: ModuleNotFoundError: No module named &#39;ConfigParser&#39;
  16. nginx 安装问题
  17. spring初识
  18. 初试GH-OST(转)
  19. 整数中1出现的次数(1~n)
  20. linux 3.10 tcp的accept测试

热门文章

  1. Hibernate-ORM:09.Hibernate中的getCurrentSession()
  2. Kotlin 0
  3. Qt程序加图标
  4. 多图片上传(base64方式传至后台)
  5. argos3-simulator
  6. 对 vscode 自动格式化的结果不太满意,我们该如何自己调整直至自己满意为止
  7. BZOJ 4011 HNOI2015 落忆枫音 DAG上的dp(实际上重点在于分析)
  8. 数据结构7——BFS
  9. web相关基础知识4
  10. TCP的挥手协议和握手协议