(洛谷)P1182 数列分段II
题目链接
题意
一个序列分成连续的M段, 使其中和最大的一段和最小。
思路
答案显然具有单调性, 答案越大, 分的段数相对越少。
可以二分一个值, 然后以这个值当作答案看看能分几段, 如果段数比M多, 说明答案应该比这个值要大, 反之则更小。
(二分答案入门题啊)。。。
最好记一个二分答案模板。。李煜东大神的二分模板看不懂。。。
代码
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<vector> #include<map> #include<cmath> #include<cstdlib> #include<ctime> #include<queue> using namespace std;const int mx = 1e5 + 5; const int inf = 1e9;int n, m; int a[mx];inline bool check(int mid){int sum = 0, cnt = 0;for(int i = 1; i <= n; i++){if(sum+a[i] > mid){sum = a[i]; cnt++; continue;}sum += a[i];}return cnt >= m; }int main(){cin >> n >> m;int l = 0, r = 0;for(int i = 1; i <= n; i++) scanf("%d", &a[i]), l = max(l, a[i]), r += a[i];while(l <= r){int mid = (l+r)>>1;if(check(mid)) {l = mid+1;}else r = mid-1;}printf("%d\n", l);return 0; }
转载于:https://www.cnblogs.com/Maktub-blog/p/10994936.html
(洛谷)P1182 数列分段II相关推荐
- 洛谷P1182 数列分段Section II 二分答案
洛谷P1182 数列分段Section II 二分答案 题意:将 n 个 数 分为 m段 求一种方案,使这m段中最大的和 最小 额..可能有点拗口,其实就是说每一种方案,都有对应的 每段和的最大值, ...
- 洛谷P1182 数列分段 Section II(二分+贪心)
题目描述 对于给定的一个长度为N的正整数数列 A1∼NA _{1∼N}A1∼N,现要将其分成 M(M≤N)M(M≤N)M(M≤N)段,并要求每段连续,且每段和的最大值最小. 关于最大值最小: 例如一 ...
- 洛谷P1182 数列分段`Section II`
. . . . . 分析 首先,分析题目,求最大值的最小化,直接联想到二分 然而关键是要怎么去高效的check 我们考虑一个贪心的思路,能加的就加上,不能则新开一段,所以对于二分的值x,我们从数列a从 ...
- 二分答案二题-P1182数列分段II,P1873砍树
T1:P1182T1:P1182T1:P1182 数列分段SectionIISectionIISection II 评测记录:https://www.luogu.org/recordnew/lists ...
- 洛谷——P1181 数列分段Section I
题目描述 对于给定的一个长度为NN的正整数数列A_iAi,现要将其分成连续的若干段,并且每段和不超过MM(可以等于MM),问最少能将其分成多少段使得满足要求. 输入输出格式 输入格式: 第1行包含两 ...
- 二分答案——数列分段 Section II(洛谷 P1182)
题目选自洛谷P1182 本题解法:二分答案+贪心 思路:首先,分析题目,求最大值的最小化,直接联想到二分,So我们直接二分答案,关键是要怎么去高效的check,我们考虑一个贪心的思路,能加的就加上,不 ...
- 洛谷 P1356 数列的整除性
[题目链接] 洛谷 P1356 数列的整除性 [题目考点] 1. 动态规划:线性动规 [解题思路] 本题与该题几乎是同一个问题: 信息学奥赛一本通 1195:判断整除 | OpenJudge 2.6 ...
- 洛谷P1414 又是毕业季II 数论
洛谷P1414 又是毕业季II 数论 d[ i ] 表示这些数中有几个数有因数 i 对于输入的每个数 都sqrt(val) 记录下 然后问你 n个数的最大公约数是多少, 相当于是问你 有 n 个数 有 ...
- 数列分段`Section II`(洛谷-P1182)
题目描述 对于给定的一个长度为N的正整数数列 A−i ,现要将其分成 M(M≤N) 段,并要求每段连续,且每段和的最大值最小. 关于最大值最小: 例如一数列 4 2 4 5 1 要分成 3 段 将其如 ...
- 数列分段II(信息学奥赛一本通-T1436)
[题目描述] 对于给定的一个长度为N的正整数数列A[i],现要将其分成M(M≤N)段,并要求每段连续,且每段和的最大值最小. 关于最大值最小: 例如一数列4 2 4 5 1要分成3段 将其如下分段: ...
最新文章
- 浏览器登录java_java – 如何停止已登录的用户从其他浏览器登录
- centos下git clone报401错误解决办法
- 案例:无人测量船水库水下地形测量及库容量计算
- RoterOS负载均衡教程
- 通向Golang的捷径【3.编辑器,IDE 和其他工具】
- jxta-P2P学习
- MPC的终结——二次规划求解约束极值问题
- 微信小程序——车牌键盘js+css
- html展示微信昵称特殊字符,微信昵称表情符号前端显示问题
- python毕业设计总结范文大全_毕业设计心得体会范文3篇
- DirectAdmin
- R语言基础-Rstudio基本使用
- 配音软件哪个好?这三款很火的配音软件,简直是短视频后期配音必备
- 手把手教你打造一个VIM-IDE
- 编码的奥秘:手电筒剖析
- 流程审批: 有个人不走申请人直属领导审批,审批流程设定(设定条件,矩阵相关)
- 红米5双清_红米5刷recovery教程_红米5第三方中文recovery下载
- Pywifi——检测是否网络连接
- 2021年信息产业十大技术趋势
- 计算机专业无领导小组面试题,2015年事业单位招聘(无领导小组讨论)面试真题及真题分析(一)...
热门文章
- @Autowired与@Resource
- 【转】android gravity属性 和 weight属性
- @property 参数问题
- JQuery简要介绍(转)
- Report Builder:SRW包
- html 中电话号码的使用
- C# winform 模拟选中并点击某一行DataGridView数据
- 08. 旋转数组的最小数字(C++版本)
- bilstmcrf词性标注_BiLSTM+CRF 的实现详解
- php简单富文本,JS简易版富文本编辑器实现代码