P1182 数列分段`Section II` 二分
2024-09-04 03:55:08
https://www.luogu.org/problemnew/show/P1182
做了这个题才知道二分的强大
这个题可以假设我们有n个果子 m个容器 要能把果子全装进去 那么容器最小可以是多小
很显然 如果我们的容器每一个都能把全部的果子装进去 那么一定是一种可行的解 但不是最优的
容器最小是多小呢?至少要能装得下最大的果子
所以答案就在 maxAi 和 sumAi 之间 进行二分查找即可
如果当前的mid是容器的容量,求出来需要多少容器 如果比 m 多 那么说明 mid 太小了 如果小于等于 m 那么就看看还有没有可以更小一点的容量
#include<bits/stdc++.h> using namespace std; int n,m,a[]; void erfen(int l,int r)
{
int i;
if(l>=r)
{
cout<<l<<endl;
exit();
}
int mid=(r+l)/;
int sumn=;
int k=;
for(i=;i<n;i++)
{
sumn+=a[i];
if(sumn>mid)
{
sumn=a[i];
k++;
if(k>m)
break;
}
}
if(k>m)
{
erfen(mid+,r);
}
else
{
erfen(l,mid);
} } int main()
{
int i,maxn=,sumn=;
cin>>n>>m;
for(i=;i<n;i++)
{
cin>>a[i];
maxn=max(a[i],maxn);
sumn+=a[i];
}
erfen(maxn,sumn);
}
最新文章
- java多态的理解
- SQL*Plus中替换变量与定义变量
- 设计一个泛型类Collection
- Maven配置不成功
- hdu4690 EBCDIC ——水题,考耐心
- shutdown immediate时 hang住 (转载)
- .Net内存优化的几点经验
- dwr使用步骤
- kafka consumer 分区reblance算法
- 【UVA11019】Matrix Matcher
- hdu 4403 枚举
- 朗科U903 低级格式化后,量产错误:read onlypage (控制器芯片群联2251-03)的解决方案
- 转:40多个关于人脸检测/识别的API、库和软件
- Java集合(2)一 ArrayList 与 LinkList
- K:正则表达式之进阶
- 【cocos 2d-x】VS2013+cocos2d-x3.3Final+Adriod交叉编译环境配置(超详细版)
- css实现3D切换功能
- 可达用户投资额的计算(Java)
- C#使用Emit构造拦截器动态代理类
- python-知识回顾-16
热门文章
- 一篇文章了解RPC框架原理
- iOS画线段
- JAVA笔记19-容器之三 Set接口、List接口、Collections类、Comparable接口(重要)
- UVALive 3523 : Knights of the Round Table (二分图+BCC)
- Node.js的url模块简介
- datatable 和实体互转
- spring自带工具类
- 3D Computer Grapihcs Using OpenGL - 20 结合Buffer
- Win7,win10(部分机型) 安装appscan9.0.3.10(可升级)实操流程
- final修饰的类,其属性和方法默认是被final修饰的吗?