[lougu]P2440 木材加工
题目
题目背景
要保护环境题目描述
木材厂有 nn 根原木,现在想把这些木头切割成 kk 段长度均为 ll 的小段木头(木头有可能有剩余)。当然,我们希望得到的小段木头越长越好,请求出 ll 的最大值。木头长度的单位是 \text{cm}cm,原木的长度都是正整数,我们要求切割得到的小段木头的长度也是正整数。例如有两根原木长度分别为 1111 和 2121,要求切割成等长的 66 段,很明显能切割出来的小段木头长度最长为 55。输入格式
第一行是两个正整数 n,kn,k,分别表示原木的数量,需要得到的小段的数量。接下来 nn 行,每行一个正整数 L_iL
i
,表示一根原木的长度。输出格式
仅一行,即 ll 的最大值。如果连 \text{1cm}1cm 长的小段都切不出来,输出 0。输入输出样例
输入 #1复制
3 7
232
124
456
输出 #1复制
114
说明/提示
数据规模与约定
对于 100\%100% 的数据,有 1\le n\le 10^51≤n≤10
5,1\le k\le 10^81≤k≤10
8,1\le L_i\le 10^8(i\in[1,n])1≤L
i
≤10
8(i∈[1,n])。
static class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt(), k = sc.nextInt();int[] L = new int[n];int index = 0;while (index < n) {L[index++] = sc.nextInt();}int lo = 0, hi = (int) 1e8;while (lo < hi) {int mid = lo + (hi - lo + 1) / 2;if (check(L, k, mid)) lo = mid;else hi = mid - 1;}System.out.println(lo);}//给定一个长度为l的木棒,是否能裁剪出超过k段的木棒private static boolean check(int[] L, int k, int l) {int count = 0;for (int x : L) {count += x / l;if (count >= k) return true;}return count >= k;}}
[lougu]P2440 木材加工相关推荐
- 洛谷 P2440 木材加工 (二分答案)
P2440 木材加工 题意 给定N个木头及其长度,要求把这些木头切割成M块长度相同的小段木头(木头有可能有剩余),求小段木头的最大值. 比如:有两木头长度为 11 和 21, 要求切成 6 块, 那么 ...
- 洛谷 P2440 木材加工(二分,含边界处理的笔记)
题目链接: 木材加工 - 洛谷https://www.luogu.com.cn/problem/P2440 非常简单的题目,用left和right控制二分边界,ans一开始是0,每次check到符合 ...
- [luogu p2440] 木材加工
传送门 木材加工 题目背景 要保护环境 题目描述 木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木头(木头有可能有剩余),需要得到的小段的数目是给定的.当然,我们希望得到的小段木头越长越好 ...
- 洛谷——P2440 木材加工
https://www.luogu.org/problem/show?pid=2440#sub 题目背景 要保护环境 题目描述 题目描述: 木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木 ...
- 二分答案——洛谷P2440木材加工
题目描述 问题分析 这个题目是一类典型的二分答案问题,题目中给出我们需要将给定的长度切割成相应的K段,并且保证切割的小段的最大长度,那么我们怎么做呢,必然是在一定的区间枚举出来该切成多少才能满足切成k ...
- 北理工集训 Day1—Day2 (部分算法题目)
目录 P1678 烦恼的高考志愿 用C++进行代码实现 P2440 木材加工 用C++进行代码实现 P5705 [深基2.例7]数字反转 代码实现 P3954 [NOIP 2017 普及组] 成绩 代 ...
- 辛普森悖论如何影响AB测试
Simpson's paradox occurs when we observe a certain trend in the aggregate data but not in the underl ...
- 二分(二分查找,二分搜索)
二分模板 浮点数二分 double l=0,r=x; while(r-l>1e-(k+2))//保留k位小数 {double mid=(l+r)/2;if(check(mid)){l=mid;} ...
- 洛谷题目AC代码总结(未完成,日更题目中)
目录 [入门1]顺序结构 [入门2]分支结构 [入门3]循环结构 [入门4]数组 [入门5]字符串 [入门6]函数与结构体 [算法1-1]模拟与高精度 [算法1-2]排序 [算法1-3]暴力枚举 [算 ...
- 每日一题解(第二周)
周二 木材加工 P2440 木材加工 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 基本思路:二分查找能够符合条件的最大长度 #include<bits/stdc++.h&g ...
最新文章
- 我是买家的前世今生,该到了say goodbye的时候了!
- 全球及中国矢量超导磁体行业“十四五”竞争状况及投资前景策略分析报告2021-2027年版
- 2.Redis数据操作
- 学习vue3系列computed
- android提醒设置,如何在Android中设置提醒?
- 九度oj 题目1325:Battle Over Cities
- WAV声音档转PCM
- 【HDU 杭电 5773 The All-purpose Zero】
- 解决TS中“Cannot find module ‘path‘ or its corresponding type declarations.”
- python中while和for的运行顺序_详解python while 函数及while和for的区别
- 爬虫 + 自动化利器 selenium 之自学成才篇(二)
- Spring-Bean加载顺序控制/循环依赖控制
- k8s pod内存溢出,自动重启
- IBIS模型:利用IBIS模型研究信号完整性问题
- eclipse SVN A conflict in the working copy obstructs the current operation
- pygame的简介与安装
- Windows操作系统类毕业论文文献有哪些?
- Neo4j Desktop版本的安装学习
- 2016,Java成神初年
- Android 支持表情功能