数列分段

ybtoj 二分-1-1

题目大意

给出一个序列A,让你把它分成m段,使每段和最大值最小

输入样例

5 3
4 2 4 5 1

输出样例

6

数据范围

1⩽M⩽N⩽1051\leqslant M\leqslant N\leqslant 10^51⩽M⩽N⩽105
sum{Ai}⩽109sum\begin{Bmatrix}A_i\end{Bmatrix}\leqslant 10^9sum{Ai​​}⩽109

解题思路

二分枚举答案
然后O(n)O(n)O(n)判断

代码

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
using namespace std;
ll n, m, l, r, mid, a[100010];
bool check(ll x)//判断
{ll g = 0, gg = 1;for (int i = 1; i <= n; ++i)if (g + a[i] <= x) g += a[i];else g = a[i], gg++;//新的一段return gg <= m;
}
int main()
{scanf("%lld%lld", &n, &m);for (int i = 1; i <= n; ++i){scanf("%lld", &a[i]);l = max(l, a[i]);r += a[i];} while(l < r)//二分{mid = (l + r)>>1;if (check(mid)) r = mid;else l = mid + 1;}printf("%lld", l);return 0;
}

【二分】数列分段(ybtoj 二分-1-1)相关推荐

  1. 洛谷P1182 数列分段Section II 二分答案

    洛谷P1182 数列分段Section II 二分答案 题意:将 n 个 数 分为 m段 求一种方案,使这m段中最大的和 最小 额..可能有点拗口,其实就是说每一种方案,都有对应的 每段和的最大值, ...

  2. 二分答案二题-P1182数列分段II,P1873砍树

    T1:P1182T1:P1182T1:P1182 数列分段SectionIISectionIISection II 评测记录:https://www.luogu.org/recordnew/lists ...

  3. 【二分】最大均值(ybtoj 二分-1-3)

    最大均值 ybtoj 二分-1-3 题目大意 给出一个序列,让你求一个长度不小于m的子序列,使其平均值最大 输入样例 10 6 6 4 2 10 3 8 5 9 4 1 输出样例 6500 数据范围 ...

  4. 【二分】防具布置/秦腾与教学评估(ybtoj 二分-1-2/jzoj 1253/luogu 4403)

    正题 ybtoj 二分-1-2 jzoj 1253 luogu 4403 题目大意 给出n组数:si,ei,dis_i,e_i,d_isi​,ei​,di​ 对于每组数据,表示在sis_isi​加1, ...

  5. php+求二分查找递归算法,PHP二分查找(递归和循环)

    二分查找可以通过递归和循环来实现, 思路如下: 将要查找的数和中间数进行比较, 如果相等,则表示找到,返回下标 如果要查找的数小于中间这个数,则说明要查找的数分布在数组左边,修改right边界,使其等 ...

  6. CCF201509-1 数列分段

    试题编号: 201509-1 试题名称: 数列分段 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 给定一个整数数列,数列中连续相同的最长整数序列算成一段,问数列中共有多少段? 输入格式 ...

  7. P1181 数列分段Section I

    传送门:洛谷 P1181 数列分段 AC的代码如下: #include<iostream> #include<cstdio> using namespace std; int ...

  8. CCF201509-1 数列分段(100分)【序列处理】

    试题编号: 201509-1 试题名称: 数列分段 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定一个整数数列,数列中连续相同的最长整数序列算成一段,问数列中共有多少段? ...

  9. CCF201509-1 数列分段(100分)

    试题编号: 201509-1 试题名称: 数列分段 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定一个整数数列,数列中连续相同的最长整数序列算成一段,问数列中共有多少段? ...

最新文章

  1. ConfigParser-- 读取写入配置文件
  2. Java 8系列(一): 日期/时间- JSR310( Date and Time API)
  3. Java:main()函数调用类中方法的限制
  4. 减少C++编译时间的方法
  5. 盗COOKIE之方法总结
  6. 所需依赖_注意细节,阿里架构师一文详解SpringDI的四种依赖注入方式
  7. Datatable 使用技巧
  8. LinkedHashMap与HashMap的使用比较
  9. Java实现文件传输
  10. 数据库“新增字段、删除字段、修改字段“
  11. isupper函数和isdigit函数
  12. C语言:数组数据移动
  13. 执行董事和董事长有什么区别
  14. Windows API 教程(七) hook 钩子监听
  15. 如何利用COOC生成动态排名变化利器可识别的数据格式
  16. IPAM——IP地址管理
  17. Tcp/Udp端口对照表
  18. MATLAB 多元线性回归(regress)
  19. 电磁场与仿真软件(18)
  20. java 刷新jtextarea,SwingPropertyChangeSupport动态更新JTextArea

热门文章

  1. 卡屏java_Java drawImage到屏幕上一卡一卡的
  2. zipsys驱动签名工具_全球首发 300系列主板USB WIN7 64位驱动 SMXDIY
  3. 机器学习之无监督学习——聚类
  4. [JS-BOM]BOM概念与组成
  5. LeetCode 501二叉搜索树中的众数-简单
  6. C++实现链式存储二叉树
  7. java基础输入输出语句
  8. Pseudoprime numbers POJ - 3641(快速幂+判素数)
  9. java 持续交付_【Java架构:持续交付】一篇文章搞掂:Jenkins
  10. icoding复习3