P1577 切绳子(二分)
思路:先来分析一下数据范围,是1e4个数据,但是,是double类型,结果不超过0.01那么在绳子最大的情况下,单纯的找正确答案暴力的话就是1e7的时间复杂度,再乘上1e4的数据,这样肯定不行。那么很容易想到二分,在找答案时使用二分的话就可以让时间复杂度下降到log(1e7)这是一个比较小的值,起码不超过128,这样,我们的时间复杂度就降了下来了。
检验函数,就是单纯的假设答案x,去除以每个绳子看看能得到最后有几段sum, 如果sum>=k则说明,是可行的。至于是不是最后答案,这要交给二分模板。
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std; const int maxn = 1e4 + ;
int n, k, a[maxn], maxx, ans, mid;
double p; bool check(int x){
int sum = ;
for (int i = ; i <= n; ++i)
sum += a[i] / x;
return sum >= k;
} void half(){
int l = , r = maxx;
while (l <= r){
mid = (l + r) >> ;
if (check(mid)){ l = mid + ; }
else r = mid - ;
}
ans = r;
} int main(){
cin >> n >> k;
for (int i = ; i <= n; ++i)
cin >> p, a[i]=p*,maxx=max(maxx, a[i]);
half(); //二分
printf("%.2lf\n", (double)ans / );
}
P1577 切绳子(二分)的更多相关文章
- 洛谷P1577 切绳子题解
洛谷P1577 切绳子题解 题目描述 有N条绳子,它们的长度分别为Li.如果从它们中切割出K条长度相同的 绳子,这K条绳子每条最长能有多长?答案保留到小数点后2位(直接舍掉2为后的小数). 输入输出格 ...
- P1577 切绳子
P1577 切绳子 题目描述 有N条绳子,它们的长度分别为Li.如果从它们中切割出K条长度相同的 绳子,这K条绳子每条最长能有多长?答案保留到小数点后2位. 输入输出格式 输入格式: 第一行两个整数N ...
- 洛谷 P1577 切绳子【二分答案】
题目描述 有N条绳子,它们的长度分别为Li.如果从它们中切割出K条长度相同的 绳子,这K条绳子每条最长能有多长?答案保留到小数点后2位. 输入输出格式 输入格式: 第一行两个整数N和K,接下来N行,描 ...
- luogu P1577 切绳子
题目描述 有N条绳子,它们的长度分别为Li.如果从它们中切割出K条长度相同的 绳子,这K条绳子每条最长能有多长?答案保留到小数点后2位. 输入输出格式 输入格式: 第一行两个整数N和K,接下来N行,描 ...
- 洛谷—— P1577 切绳子
https://www.luogu.org/problemnew/show/P1577 题目描述 有N条绳子,它们的长度分别为Li.如果从它们中切割出K条长度相同的 绳子,这K条绳子每条最长能有多长? ...
- 网线切割&切绳子
题目描述 Wonderland居民决定举行一届地区性程序设计大赛.仲裁委员会志愿负责这次赛事并且保证会组织一次有史以来最公正的比赛.为此,所有参赛者的电脑和网络中心会以星状网络连接,也就是说,对每个参 ...
- 推荐10款超级有趣的HTML5小游戏
HTML5的发展速度比任何人的都想像都要更快.更加强大有效的和专业的解决方案已经被开发......甚至在游戏世界中!这里跟大家分享有10款超级趣味的HTML5游戏,希望大家能够喜欢! Kern Typ ...
- English word
第一部分 通过词缀认识单词 (常用前缀一) 1.a- ①加在单词(形容词)或词根前面,表示"不,无,非" acentric [ə'sentrik] a 无中心的(a+centr ...
- 微价值:专访《甜心爱消除》的个人开发者Lee,日入千元
[导语] 我们希望能够对一些个人开发者进行专访,这样大家更能显得接地气,看看人家做什么,怎么坚持.<甜心爱消除>作者Lee是三群的兄弟,也关注微价值.微价 值的文章还是可以的,得到一些业内 ...
随机推荐
- 记录使用Redis和nginx 实现一个简单的负载均衡(FB)
这两年在博客园看了不少大牛的分享,一直打算能写点什么东西. 之前偶然看见一个利用Redis 当作 Session数据宿主的demo,出处我已经找不到了.后来没事看了看nginx相关的东西.其中负载均衡 ...
- blfs(systemd版本)学习笔记-构建gnome桌面系统后的配置及安装的应用
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 一.构建安装ibus-libpinyin的笔记地址:https://www.cnblogs.com/renren-study-n ...
- maven 继承
一个 maven 项目可以继承另一个 maven 的依赖, 称为子项目 父项目 使用场景: 多个子项目都需要某些依赖, 就可以把子项目共同的依赖抽取到父项目中, 子项目通过继承得到这些依赖, 这样也更 ...
- Spring学习之旅(六)Spring AOP工作原理初探
AOP(Aspect-Oriented Programming,面向切面编程)是Spring提供的关键技术之一. AOP基于IoC,是对OOP(Object-Oriented Programming ...
- Linux 线程实现模型
1.Linux 线程的调度实现可以有两种模型, 一种是完全由进程负责,进程内启动一个线程调度器,由进程内的线程调度器完成调度. 缺点是:(1)各个线程自己加主动释放cpu的流程 (2)进程可能阻塞,达 ...
- 显示Linux进程打开了哪些文件? 用lsof命令
1.lsof abc.txt --> 显示开启文件 abc.txt的进程. 2.lsof -c abc ---> 显示abc进程现在打开的文件. 3.lsof -c -p 1234 -- ...
- 【效率工具】史上最好用的SSH一键登录脚本,第三版更新!
说明 时隔一周,GotoSSH又迎来了一次重大更新,让这个史诗级的shell工具变得更加丝般顺滑了~ 这次的主要更新是对自定义全局命令以及自定义属性的支持,让设置更加灵活,此外,对各个细节进行了调整, ...
- 本机mysql 5.7服务启动后停止,某些服务在未有其他应用程序使用时停止
本机mysql 5.7服务启动后停止,某些服务在未有其他应用程序使用时停止 出现这种报错,mysql服务启动不了: 错误的尝试: 1:尝试了这个博客:https://blog.csdn.net/wai ...
- html之CSS样式学习笔记
本文内容: 字体样式 文本样式 背景样式 尺寸样式 盒子模型 边框样式 边距样式 浮动布局 定位布局 [CSS3]伸缩布局 标签显示方式 列表样式 [CSS3]过渡样式 [CSS3]变换样式之2D变形 ...
- javascript的介绍、javascirpt的存在形式、javascript注释
本文内容: javascript的介绍 javascirpt的存在形式 javascript注释 javascript的介绍: javascript是一种解释性脚本语言 它的用途是给html网页增加动 ...