原题:
有N条绳子,它们的长度分别为Li。如果从它们中切割出K条长度相同的绳子,这K条绳子每条最长能有多长?答案保留到小数点后2位。
输入输出格式
输入格式:
第一行两个整数N和K,接下来N行,描述了每条绳子的长度Li。
输出格式:
切割后每条绳子的最大长度。
输入输出样例
输入样例#1: 复制
4 11
8.02
7.43
4.57
5.39
输出样例#1: 复制
2.00
说明
对于100%的数据 0<Li<=100000.00 0<n<=10000 0<k<=10000
题意:
有n条长度不一的绳子,你需要切成k个长度相同的绳子,问能切出绳子的最大长度?
题解:
对于这个问题,思想上就是一个简单的二分问题。定义一个最优解,每一次都判断能否在当前这个最大长度下切出k个绳子,若能则证明m最大长度取小了,反之则大了。
这道题目容易卡的就是精度,题目要求输出小数点后两位数字,这个问题我最先想到的直接就用double型的解决,却总是会WA掉几个测试点。其实可以换一个思路来想,我把先将每一个数值扩大一百倍,当作整型来处理,就不会受到精度的影响,之后再在结果上除去100即可。
附上AC代码:

#include <iostream>
#include <iomanip>
using namespace std;
int n;
double k,a[100005];
bool check(double m)
{int sum=0;//记录能切出多少个长度为m的绳子for(int i=1;i<=n;i++){sum+=(int)(a[i]/m);}if(sum>=k)return true;else return false;
}
int main()
{cin>>n>>k;for(int i=1;i<=n;i++){cin>>a[i];a[i]*=100;//将数据先扩大100倍}int l=0,m,r=100000000;//定义上下界,r可以开大一些while(l<=r){m=(l+r)/2;if(m==0)break;//增强健壮性if(check(m))l=m+1;elser=m-1;}cout<<fixed<<setprecision(2)<<1.0*r/100<<endl;//输出时,先将其*1.0转变成浮点数,后再出去开始扩大的100倍return 0;
}

洛谷-P1577-切绳子相关推荐

  1. 切绳子【洛谷P1577】【二分】

    切绳子[洛谷P1577][二分] 文章目录 切绳子[洛谷`P1577`][二分] 题目描述 输入格式 输出格式 输入 输出 代码 题目描述 有 N 条绳子,它们的长度分别为 Li.如果从它们中切割出 ...

  2. 题解报告:P1577 切绳子(二分答案)

    飞机票 P1577 切绳子 题意:有 N条绳子,它们的长度分别为 Li .如果从它们中切割出 KK 条长度相同的绳子,这 KK 条绳子每条最长能有多长?答案保留到小数点后 2 位(直接舍掉 2 位后的 ...

  3. 【Leetcode单调队列】- 洛谷P1714切蛋糕

    单调队列 解决该类问题的重点维护一个队列,从队首到队尾是递减的,队首是最大的.队尾是最小的. 队尾接受值,队首排出值. Java实现用双端队列,前面接收值,后面排出来值. 这类题目往往是跟滑动窗口一起 ...

  4. P1577切绳子问题

    题目描述 有 NN 条绳子,它们的长度分别为 L_iLi​.如果从它们中切割出 KK 条长度相同的绳子,这 KK 条绳子每条最长能有多长?答案保留到小数点后 2 位(直接舍掉 2 位后的小数). 输入 ...

  5. //众神云集、群魔乱舞、以一抵百、砥砺前行//P1577 切绳子

    题目描述 题目描述 有 N 条绳子,它们的长度分别为 Li.如果从它们中切割出 K 条长度相同的绳子,这 K 条绳子每条最长能有多长?答案保留到小数点后 2 位(直接舍掉 2 位后的小数). 输入格式 ...

  6. 洛谷—— P1714 切蛋糕

    https://www.luogu.org/problem/show?pid=1714 题目描述 今天是小Z的生日,同学们为他带来了一块蛋糕.这块蛋糕是一个长方体,被用不同色彩分成了N个相同的小块,每 ...

  7. 洛谷 - P1714 切蛋糕(单调队列+前缀和+思维)

    题目链接:点击查看 题目大意:给出一个由n个数组成的序列,求长度不超过m的连续子段和中的最大值 题目分析:因为给出了一个限制条件,所以这就不能当普通的动态规划来做了,我们可以跑一遍前缀和,然后枚举每一 ...

  8. 洛谷 P1714 切蛋糕

    题目链接 题目描述 今天是 Z的生日,同学们为他带来了一块蛋糕.这块蛋糕是一个长方体,被用不同色彩分成了N个相同的小块,每小块都有对应的幸运值. 小Z作为寿星,自然希望吃到的第一块蛋糕的幸运值总和最大 ...

  9. 切绳子(含五种二分做法)

    题目来自洛谷 P1577 切绳子 题目描述 有 N 条绳子,它们的长度分别为 Li​.如果从它们中切割出 K 条长度相同的绳子,这 K 条绳子每条最长能有多长?答案保留到小数点后 2 位(直接舍掉 2 ...

  10. 【寒假每日一题】洛谷 P7471 [NOI Online 2021 入门组] 切蛋糕

    题目链接:P7471 [NOI Online 2021 入门组] 切蛋糕 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 Alice.Bob 和 Cindy 三个好朋友得到 ...

最新文章

  1. HTTP API响应数据规范整理
  2. win10装centos双系统之后,win10的启动项消失的解决方法
  3. 手把手玩转协同编辑(1):AST (Address Space Transformation)地址空间转换算法 基本介绍...
  4. <DependencyManagement>记录
  5. c++operators(运算符)
  6. 学C/C++语言,32个必备修养!
  7. leetcode两数之和
  8. 腾讯搜搜退出PC搜索领域:百度搜狗迎来双龙竞争
  9. WebStorm按Tab建快速生成代码模块
  10. 计算机组成原理白朔飞,计算机组成原理(第四章复习).ppt
  11. 不间断电源ups标准_UPS不间断电源除尘技巧分析
  12. Maven使用注解配置SQL映射器(@Results,@ResultMap)
  13. es 使用ik停词_ES使用IK分词器
  14. 李雅普诺夫指数的计算
  15. node.js 代码加密
  16. L2-016 愿天下有情人都是失散多年的兄妹 (25 分) (DFS)
  17. 微信签名错误解决步骤
  18. 2020最新整理:好用的免费/收费的第三方域名解析服务平台
  19. hexo自定义域名以及解析
  20. 移动4G DTU_联通4G DTU_电信4G DTU

热门文章

  1. ES内部分片处理机制——Segment
  2. Flutter 入门指北(Part 2)之基础部件
  3. 《Image-to-Image Translation with Conditional Adversarial Networks》文章翻译
  4. java实现第七届蓝桥杯凑平方数
  5. 安居客爬虫+分析+回归
  6. 远程办公效率打折,怎么办?
  7. 十一假期干什么?应邀参加 1024 技术英雄百人会
  8. 新手如何实现自媒体盈利,我把自媒体变现的套路都总结出来
  9. CSS3_01_圆角_边框_渐变_字体
  10. TLM通信 — UVM