题目大意

有正整数 n,kn,kn,k 和 nnn 段长度均为正整数的木材,将它们锯成 kkk 段长度相同的木头,求最大长度。

解题思路

二分答案即可。时间复杂度 O(nlog⁡2L)O(n\log_2L)O(nlog2​L)。病历本:二分的右端点。

#include <cstdio>
#include <cstdlib>
#include <cstring>const int MAXN=100010;
typedef long long ll;#define max(x,y) ((x)>(y)?(x):(y))int n, k;
int a[MAXN+10];inline int read (){int s=0; char c;do c=getchar (); while ('0'>c||'9'<c);while ('0'<=c&&'9'>=c)s=s*10+c-'0', c=getchar ();return s;
}
int check (int le){ll cnt=0;for (int i=1; i<=n; ++i)cnt+=(ll)a[i]/(ll)le;return cnt>=k?1:0;
}
int main(){n=read (); k=read ();int left=1, right=-1, mid, ans;for (int i=1 ;i<=n; ++i){a[i]=read ();right=max (right, a[i]);}while (left<=right){mid=(left+right)/2;if (check (mid)){ans=mid;left=mid+1;}elseright=mid-1;}printf ("%d",ans);
}

luogu P2440 木材加工相关推荐

  1. [luogu p2440] 木材加工

    传送门 木材加工 题目背景 要保护环境 题目描述 木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木头(木头有可能有剩余),需要得到的小段的数目是给定的.当然,我们希望得到的小段木头越长越好 ...

  2. 洛谷 P2440 木材加工 (二分答案)

    P2440 木材加工 题意 给定N个木头及其长度,要求把这些木头切割成M块长度相同的小段木头(木头有可能有剩余),求小段木头的最大值. 比如:有两木头长度为 11 和 21, 要求切成 6 块, 那么 ...

  3. 洛谷 P2440 木材加工(二分,含边界处理的笔记)

     题目链接: 木材加工 - 洛谷https://www.luogu.com.cn/problem/P2440 非常简单的题目,用left和right控制二分边界,ans一开始是0,每次check到符合 ...

  4. 洛谷——P2440 木材加工

    https://www.luogu.org/problem/show?pid=2440#sub 题目背景 要保护环境 题目描述 题目描述: 木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木 ...

  5. 二分答案——洛谷P2440木材加工

    题目描述 问题分析 这个题目是一类典型的二分答案问题,题目中给出我们需要将给定的长度切割成相应的K段,并且保证切割的小段的最大长度,那么我们怎么做呢,必然是在一定的区间枚举出来该切成多少才能满足切成k ...

  6. 每日一题解(第二周)

    周二 木材加工 P2440 木材加工 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 基本思路:二分查找能够符合条件的最大长度 #include<bits/stdc++.h&g ...

  7. 北理工集训 Day1—Day2 (部分算法题目)

    目录 P1678 烦恼的高考志愿 用C++进行代码实现 P2440 木材加工 用C++进行代码实现 P5705 [深基2.例7]数字反转 代码实现 P3954 [NOIP 2017 普及组] 成绩 代 ...

  8. 辛普森悖论如何影响AB测试

    Simpson's paradox occurs when we observe a certain trend in the aggregate data but not in the underl ...

  9. 二分(二分查找,二分搜索)

    二分模板 浮点数二分 double l=0,r=x; while(r-l>1e-(k+2))//保留k位小数 {double mid=(l+r)/2;if(check(mid)){l=mid;} ...

  10. 洛谷题目AC代码总结(未完成,日更题目中)

    目录 [入门1]顺序结构 [入门2]分支结构 [入门3]循环结构 [入门4]数组 [入门5]字符串 [入门6]函数与结构体 [算法1-1]模拟与高精度 [算法1-2]排序 [算法1-3]暴力枚举 [算 ...

最新文章

  1. 57 Node.js异步编程
  2. Java 爬虫--类似Python的requests库--HttpClient, HttpAsyncClient--Maven
  3. 17年前存款11万,取款时银行以销户为由拒绝,法院判银行全额赔付
  4. 消费金融资金断流,银行抽贷、通道暂停,P2P离场
  5. P5726 【深基4.习9】打分(python3实现)
  6. 如何让你的Linux云服务器更加的安全?
  7. 各类文件的文件头标志
  8. win7笔记本外接显示器html,win7系统笔记本外接显示器的操作方法
  9. Android packageManager.setComponentEnabledSetting()和setApplicationEnabledSetting()方法介绍
  10. 运算放大器单电源设计
  11. 一文搞懂 deconvolution、transposed convolution、sub-­pixel or fractional convolution
  12. 计算机网络实训报告总结,学习计算机网络的实训总结
  13. java输出hello word,新手求教如何输出helloword
  14. C语言如何打开shx文件,shx文件怎么打开?Win7打开shx文件的操作方法
  15. 最小的k个数(Java)
  16. 选择IT我不曾后悔?希望高人指点迷津
  17. 安装optifine时无法正确打开jar文件 我的世界 optifine 安装 打不开 jar
  18. 采用自编码网络(AE)实现无监督学习
  19. 手写模板——前端总结
  20. js 向页面输出html,javascript怎么输出?

热门文章

  1. JS格式化字符串(两种方法)
  2. 笔记本风扇噪音大的解决方法
  3. 【报告分享】第二届中国工业互联网大赛成果汇编-中国工业互联网大赛组委会(附下载)
  4. 模仿腾讯QQ的web登陆面板
  5. wps将批量数字转换成条形码_wps批量形成条码
  6. linux考试题100道
  7. JS实现歌词同步滚动效果
  8. @SpringBootTest Canot resolve symbol ‘SpringBootTest‘问题解决
  9. 汽车电子-AUTOSAR基础简介
  10. iOS深拷贝和浅拷贝