数列分段 II
2024-10-20 00:42:50
题目描述
思路
代码
#include <cstdio>
int n, m, arr[100005], ans;
int l, r, mid, inf = 0x7f3f3f3f;
inline int read() {
int s = 0, f = 1;
char ch = getchar();
while (ch < '0' || ch > '9') {
if (ch == '-') f = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9') s = s * 10 + ch - '0', ch = getchar();
return s * f;
return 0;
}
bool valid(int x) {
int cnt = 0, sum = 0;
for (int i = 1; i <= n; ++i) {
if (arr[i] > x) return false;
if (sum + arr[i] <= x) sum += arr[i];
else cnt++, sum = arr[i];
}
if (sum != 0) cnt++;
return cnt <= m;
}
int main() {
n = read(), m = read();
for (int i = 1; i <= n; ++i) arr[i] = read();
l = 0, r = inf;
while (l <= r) {
mid = l + r >> 1;
if (valid(mid)) ans = mid, r = mid - 1;
else l = mid + 1;
}
printf("%d", ans);
return 0;
}
最新文章
- C#网络编程——IPHostEntry
- @Transactional 事务管理
- Emberjs之ComputedProperty
- Javascrpt无刷新文件上传
- 【BZOJ】2277: [Poi2011]Strongbox
- 字符串 —— String?StringBuffer?StringBuilder?
- HTML 中的meta标签中的http-equiv与name属性使用介绍
- 如何在Ubuntu上安装最新版本的Node.js
- C 小写字母编程大写并输出
- CRC 模式及实现
- 基于VMware的eCos应用程序测试(hello wold)
- 修改linux多系统启动顺序
- 在DFS和BFS中一般情况可以不用vis[][]数组标记
- 强大的数据库工具 dbForge Studio ForMySql
- Shell命令-线上查询及帮助之man、help
- [luogu3258][JLOI2014]松鼠的新家
- Chrome插件消息传递实例
- golang语言中os/signal包的学习与使用
- 排查linux下java应用cpu占用过高
- 使用google字体发生http://fonts.gstatic.com/s/ubuntu/v8/_aijTyevf54tkVDLy-dlnFtXRa8TVwTICgirnJhmVJw.woff2
热门文章
- something about 乘法逆元
- 洛谷 题解 P2721 【摄像头】
- shell脚本编程基础之自定义函数库
- x32下的DLL隐藏
- rust 函数的使用
- Server 2003 操作系统位数
- 共线性图 | Alluvial Diagrams | Parallel plot | Parallel Coordinates Plot
- Linux零拷贝技术 直接 io
- PHP session_start() open failed: Permission denied session 无法使用的问题
- 数据分析入门——pandas之DataFrame多层/多级索引与聚合操作