【二分】数列分段(ybtoj 二分-1-1)
数列分段
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)相关推荐
- 洛谷P1182 数列分段Section II 二分答案
洛谷P1182 数列分段Section II 二分答案 题意:将 n 个 数 分为 m段 求一种方案,使这m段中最大的和 最小 额..可能有点拗口,其实就是说每一种方案,都有对应的 每段和的最大值, ...
- 二分答案二题-P1182数列分段II,P1873砍树
T1:P1182T1:P1182T1:P1182 数列分段SectionIISectionIISection II 评测记录:https://www.luogu.org/recordnew/lists ...
- 【二分】最大均值(ybtoj 二分-1-3)
最大均值 ybtoj 二分-1-3 题目大意 给出一个序列,让你求一个长度不小于m的子序列,使其平均值最大 输入样例 10 6 6 4 2 10 3 8 5 9 4 1 输出样例 6500 数据范围 ...
- 【二分】防具布置/秦腾与教学评估(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, ...
- php+求二分查找递归算法,PHP二分查找(递归和循环)
二分查找可以通过递归和循环来实现, 思路如下: 将要查找的数和中间数进行比较, 如果相等,则表示找到,返回下标 如果要查找的数小于中间这个数,则说明要查找的数分布在数组左边,修改right边界,使其等 ...
- CCF201509-1 数列分段
试题编号: 201509-1 试题名称: 数列分段 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 给定一个整数数列,数列中连续相同的最长整数序列算成一段,问数列中共有多少段? 输入格式 ...
- P1181 数列分段Section I
传送门:洛谷 P1181 数列分段 AC的代码如下: #include<iostream> #include<cstdio> using namespace std; int ...
- CCF201509-1 数列分段(100分)【序列处理】
试题编号: 201509-1 试题名称: 数列分段 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定一个整数数列,数列中连续相同的最长整数序列算成一段,问数列中共有多少段? ...
- CCF201509-1 数列分段(100分)
试题编号: 201509-1 试题名称: 数列分段 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定一个整数数列,数列中连续相同的最长整数序列算成一段,问数列中共有多少段? ...
最新文章
- ConfigParser-- 读取写入配置文件
- Java 8系列(一): 日期/时间- JSR310( Date and Time API)
- Java:main()函数调用类中方法的限制
- 减少C++编译时间的方法
- 盗COOKIE之方法总结
- 所需依赖_注意细节,阿里架构师一文详解SpringDI的四种依赖注入方式
- Datatable 使用技巧
- LinkedHashMap与HashMap的使用比较
- Java实现文件传输
- 数据库“新增字段、删除字段、修改字段“
- isupper函数和isdigit函数
- C语言:数组数据移动
- 执行董事和董事长有什么区别
- Windows API 教程(七) hook 钩子监听
- 如何利用COOC生成动态排名变化利器可识别的数据格式
- IPAM——IP地址管理
- Tcp/Udp端口对照表
- MATLAB 多元线性回归(regress)
- 电磁场与仿真软件(18)
- java 刷新jtextarea,SwingPropertyChangeSupport动态更新JTextArea