这是一道二分答案算法题,洛谷标签中的贪心等完全用不到。


这道题的数据范围较大,所以保险起见,整型的数据我们都开成longlong

题意很好理解,这里就不做过多的分析了,直接看代码,后面有注释:

#include<bits/stdc++.h>
using namespace std;
long long n,k,l,a[1000010],maxn,ans;
bool wood(long long x){
long long cnt=0;
for(int i=1;i<=n;i++){
cnt+=a[i]/x;
//看看每根木材按照设定长度可以截几段
}
return cnt>=k;//判断此时设定的长度能否符合要求
} int main(){
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1);//先排好序,方便比较(其实无所谓) long long l=0,r=1e9+1,mid;//l赋极小值,r赋极大值
while(l+1<r){
mid=(l+r)/2;//mid赋l与r的中间值,用以二分
if(wood(mid)){
//将mid带入函数,如果返回为真,说明符合条件,可以将长度增大
// cout<<l<<" "<<r<<endl;
l=mid;
ans=mid;
}
else {
r=mid;
//cout<<l<<" "<<r<<endl;
}
} printf("%lld",ans);//数据类型longlong的输出方式。
return 0;
}

洛谷 P2440木材加工 题解的更多相关文章

  1. 洛谷 P2440 木材加工

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

  2. 洛谷 P2440 木材加工【基础二分】

    题目链接:https://www.luogu.org/problemnew/show/P2440 题目描述 木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木头(木头有可能有 剩余),需要得 ...

  3. 洛谷 p2440木材加工

    #include <iostream>#include <cstring>using namespace std;const int N = 1e5 + 100;int a[N ...

  4. 洛谷——P2440 木材加工

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

  5. 洛谷NOIp热身赛题解

    洛谷NOIp热身赛题解 A 最大差值 简单树状数组,维护区间和.区间平方和,方差按照给的公式算就行了 #include<bits/stdc++.h> #define il inline # ...

  6. 洛谷P2827 蚯蚓 题解

    洛谷P2827 蚯蚓 题解 题目描述 本题中,我们将用符号 ⌊c⌋ 表示对 c 向下取整. 蛐蛐国最近蚯蚓成灾了!隔壁跳蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮他们消灭蚯蚓. 蛐蛐国里现 ...

  7. 洛谷P1816 忠诚 题解

    洛谷P1816 忠诚 题解 题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人 ...

  8. [POI 2008&洛谷P3467]PLA-Postering 题解(单调栈)

    [POI 2008&洛谷P3467]PLA-Postering Description Byteburg市东边的建筑都是以旧结构形式建造的:建筑互相紧挨着,之间没有空间.它们共同形成了一条长长 ...

  9. [NOI 2020 Online] 入门组T1 文具采购(洛谷 P6188)题解

    原题传送门 题目部分:(来自于考试题面,经整理) [题目描述] 小明的班上共有 n 元班费,同学们准备使用班费集体购买 3 种物品: 1.圆规,每个 7 元. 2.笔,每支 4 元. 3.笔记本,每本 ...

  10. [洛谷P3948]数据结构 题解(差分)

    [洛谷P3948]数据结构 Description 最开始的数组每个元素都是0 给出n,opt ,min,max,mod 在int范围内 A: L ,R ,X 表示把[l,R] 这个区间加上X(数组的 ...

随机推荐

  1. NLP之基于logistic回归的文本分类

    数据集下载: 链接:https://pan.baidu.com/s/17EL37CQ-FtOXhtdZHQDPgw 提取码:0829 逻辑斯蒂回归 @ 目录 逻辑斯蒂回归 1.理论 1.1 多分类 1 ...

  2. Linux软件安装方式 - Tarball&RPM&YUM

    软件安装 简介 概念详解 # 概念详解 - 开放源码: 程序码, 写给人类看的程序语言, 但机器并不认识, 所以无法执行; - 编译器: 将程序码转译成为机器看的懂得语言, 就类似翻译者的角色; - ...

  3. gin框架——使用viper读取配置

    什么是viper Viper是Go应用程序的完整配置解决方案,包括12-Factor(也称为"十二要素",是一套流行的应用程序开发原则. 其实我也不是很清楚)应用程序.它被设计为在 ...

  4. 详细了解JVM运行时内存

    详细了解JVM运行时内存 1.程序计数器 概念 程序计数器也叫作PC寄存器,是一块很小的内存区域,可以看做是当前线程执行的字节码的行号指示器.字节码的解释工作就是通过改变程序计数器里面的值来获得下一条 ...

  5. mysql网上知识

    MySQL学习笔记 登录和退出MySQL服务器 # 登录MySQL $ mysql -u root -p12345612 # 退出MySQL数据库服务器 exit; 基本语法 -- 显示所有数据库 s ...

  6. VBA工程设置密码

    VBA 工程设置密码 Alt + F11,进入程序界面: 工具---> VBAProject属性---> 保护---> 查看时锁定工程前打勾,并在下面的密码区输入密码.

  7. uwsgi 启动配置文件

    # uwsig使用配置文件启动 [uwsgi] # 项目目录 chdir=/myfiles/xxx/xxx/my_project # 指定项目的application module=my_projec ...

  8. Android开发之应用更新或软件下载

    Android开发之应用更新或软件下载 本文章学习前提:okHttp3或以上,EventBus或其它事件总线工具,四大组件的Activity和Service,安卓通知基础知识 新建项目文件 目录结构如 ...

  9. 【SQL基础】【关键字大写】条件查询:比较、不等于、IN、为空、BETWEEN

    〇.概述 1.内容介绍 条件查询:比较.不等于.IN.为空.BETWEEN 2.建表语句 drop table if exists user_profile; CREATE TABLE `user_p ...

  10. 【离线数仓CDH版本】即席查询工具(Presto、Druid、Kylin)、CDH数仓、Impala查询

    1.即席查询 一.Presto 大数据量.秒级.多数据源的查询引擎[支持各种数据源work的内存级查询] 由coordinator和多个work构成,work对应不同数据源Catalog 特点:基于内 ...