洛谷 1182 数列分段Section II
2024-08-30 09:44:20
【题解】
最大值最小化,那么一般要联想到二分。二分一个最大值,然后check一下能否分成小于等于m段即可。
#include<cstdio>
#include<algorithm>
#include<cstring>
#define LL long long
#define rg register
#define N 200010
using namespace std;
int n,m,l,r,mid,a[N];
inline int read(){
int k=,f=; char c=getchar();
while(c<''||c>'')c=='-'&&(f=-),c=getchar();
while(''<=c&&c<='')k=k*+c-'',c=getchar();
return k*f;
}
inline int max(int x,int y){return x>y?x:y;}
inline bool check(){
int sum=,cnt=;
for(rg int i=;i<=n;i++){
sum+=a[i];
if(sum>mid) cnt++,sum=a[i];
}
return cnt<=m;
}
int main(){
n=read(); m=read();
for(rg int i=;i<=n;i++) a[i]=read(),l=max(l,a[i]-),r+=a[i];
while(l+<r){
mid=(l+r)>>;
if(check()) r=mid; else l=mid;
}
printf("%d\n",r);
return ;
}
最新文章
- CSS魔法堂:Box-Shadow没那么简单啦:)
- ESXi Install OpenWRT
- CentOS7 Java安装
- 图层的transform属性
- [Tomcat]如何在同一台机部署多个tomcat服务
- js封常用类
- 【 D3.js 进阶系列 】 进阶总结
- Shell break和continue命令
- Linux 程序设计的一些优化措施
- 循环单词 java
- 邮件实现详解(二)------手工体验smtp和pop3协议
- go语言 nsq源码解读四 nsqlookupd源码options.go、context.go和wait_group_wrapper.go
- ZOJ 4110 Strings in the Pocket (马拉车+回文串)
- pymsql模块
- pygame 游戏舞台搭建典型应用
- .Net异步实例讲解
- 016.OpenStack及云计算(面试)常见问题
- Redis Cluster日常操作命令梳理
- python3笔记(三)if...else、if...elif...else
- CentOS6.5安装Maven3.2.5