codevs 3278 最小m 段和问题
2024-09-07 06:13:52
时间限制: 1 s
空间限制: 256000 KB
题目等级 : 黄金 Gold
题目描述 Description
给定 n 个整数(不一定是正整数)组成的序列,现在要求将序列分割为 m 段,每段子序列中的数在原序列 中连续排列。如何分割才能使这 m 段子序列的和的最大值达到最小?
输入描述 Input Description
文件的第 1 行中有 2 个正整数 n 和 m。 正整数 n 是序列 的长度;正整数 m 是分割的断数。 接下来的一行中有 n 个整数。
输出描述 Output Description
文件的第 1 行中的数是计算出 的 m 段子序列的和的最大值的最小值。
样例输入 Sample Input
1 1
10
样例输出 Sample Output
10
数据范围及提示 Data Size & Hint
N<=1000,M<=N
二分做法 点击传送
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio> using namespace std; int ans,l,r,n,m,i,a[+];
int judge(int now)
{
int tot=,x=;
for(i=;i<n;++i)
{
if(a[i]>now) return ;
if(a[i]+x<=now)
x+=a[i];
else
{
x=a[i];
tot++;
if(tot>=m) return ;
}
}
return ;
}
int main()
{
cin>>n>>m;
for(i=;i<n;++i)
{
cin>>a[i];
r+=a[i];
}
while(l<=r)
{
int mid=(l+r)>>;
if(judge(mid))
{
ans=mid;
r=mid-;
}
else l=mid+;
}
cout<<ans;
}
最新文章
- 希尔排序(java)
- HTML5 与 CSS3 jQuery部分知识总结
- 处理某个json文件的代码
- 用keras的cnn做人脸分类
- JNI笔记
- Storyboards
- iOS - CoreMotion
- C++高精度运算类bign (重载操作符)
- django post方法不能提交
- 代码生成引擎之T4模版
- poj1799---解析几何
- Installshield关于.NET安装时需要重启动的处理办法,以及延伸出的重启后继续安装的安装包的一点想法
- SQL Server 2008 定时作业的制定
- oracle关键字(保留字)
- BZOJ 1185: [HNOI2007]最小矩形覆盖 [旋转卡壳]
- spring3——IOC之基于XML的依赖注入(DI )
- 关于最新的APP上架流程
- oracle 执行顺序 select查询优化
- Linux 小知识翻译 - 「内核(kernel)」
- hdu 2845 Beans(最大不连续子序列和)
热门文章
- 自适应文案提示框、无数据图片加载<;IOS小组件>;
- cx_Oracle库导入失败引起crontab中python程序运行失败,并且无错误提示
- Android布局中的layout_weight和weightSum属性的详解及使用
- bzoj 3778: 共鸣【计算几何+dp】
- 阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:8. 委托事件
- mysql--浅谈视图1
- JSON脱敏
- URI URN URL的RFC参考文档
- Flask (三) 数据迁移
- Codeforces Round #542(Div. 2) B.Two Cakes