数列分段`Section II`(洛谷-P1182)
题目描述
对于给定的一个长度为N的正整数数列 A−i ,现要将其分成 M(M≤N) 段,并要求每段连续,且每段和的最大值最小。
关于最大值最小:
例如一数列 4 2 4 5 1 要分成 3 段
将其如下分段:
[4 2][4 5][1]
第一段和为 6 ,第 2 段和为 9 ,第 3 段和为 1 ,和最大值为 9 。
将其如下分段:
[4][2 4][5 1]
第一段和为 4 ,第 2 段和为 6 ,第 3 段和为 6 ,和最大值为 6 。
并且无论如何分段,最大值不会小于 6 。
所以可以得到要将数列 4 2 4 5 1 要分成 3 段,每段和的最大值最小为 6 。
输入输出格式
输入格式:
第 1 行包含两个正整数N,M。
第 2 行包含 N 个空格隔开的非负整数 Ai ,含义如题目所述。
输出格式:
一个正整数,即每段和最大值最小为多少。
输入输出样例
输入样例#1:
5 3
4 2 4 5 1输出样例#1:
6
源代码
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,a[1000000];
bool judge(int x)
{int sum=0,group=1;//组数和清零,组数归1for(int i=1;i<=n;i++){sum+=a[i];//累加和if(sum>x)//当前和>当前值{sum=a[i];//和=当前值group++;//分组}}if(group<=m)//当前组数<需要组数return true;//需要减小右值elsereturn false;
}
int main()
{int l=0,r=0,mid;int i;cin>>n>>m;for(i=1;i<=n;i++){cin>>a[i];l=max(l,a[i]);//设置左值为数列最大值r+=a[i];//设置右值为数列和}while(l+1<r){mid=(l+r)/2;//取中间值if(judge(mid))//进行判断r=mid;else l=mid;}if(judge(l))//判断当前值是否满足条件cout<<l<<endl;elsecout<<r<<endl;return 0;
}
数列分段`Section II`(洛谷-P1182)相关推荐
- 二分答案——数列分段 Section II(洛谷 P1182)
题目选自洛谷P1182 本题解法:二分答案+贪心 思路:首先,分析题目,求最大值的最小化,直接联想到二分,So我们直接二分答案,关键是要怎么去高效的check,我们考虑一个贪心的思路,能加的就加上,不 ...
- 洛谷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从 ...
- 【Luogu1182】数列分段Section II(二分)
problem 一个长度为N的正整数数列A[i] 将其分成M段,并要求每段连续 求每段和最大值(M段各自的和中最大的那个)最小(某种方案下最小). solution 二分每段和的最大值mid. 如果存 ...
- 贪心: Array Splitting(数列分段)(洛谷CF1175D)
解析 这题可以转化一下: (<神笔马良>....) 计算这些长方形对应下标的总加和 我们可以一层一层往上垒,假设第i层起始点为xi,总和为sumi,再设从1到i的前缀和为si 显然第一层x ...
- P1181 数列分段Section I
传送门:洛谷 P1181 数列分段 AC的代码如下: #include<iostream> #include<cstdio> using namespace std; int ...
- 数列分段Section I(洛谷-P1181)
题目描述 对于给定的一个长度为N的正整数数列A[i],现要将其分成连续的若干段,并且每段和不超过M(可以等于M),问最少能将其分成多少段使得满足要求. 输入输出格式 输入格式: 输入文件的第1行包含两 ...
- 洛谷——P1181 数列分段Section I
题目描述 对于给定的一个长度为NN的正整数数列A_iAi,现要将其分成连续的若干段,并且每段和不超过MM(可以等于MM),问最少能将其分成多少段使得满足要求. 输入输出格式 输入格式: 第1行包含两 ...
最新文章
- JetBrains 2018 中国开发者生态报告:Java 最流行
- 我在51CTO微职位学软考——网络工程师
- nginx功能扩展整理
- STL源代码分析(ch2 内存分配)概述
- 中getname_Spring IOC中的灵魂伴侣:BeanFactory ApplicationContext
- 聊城大学计算机应用基础函授,聊城大学试题计算机应用基础试题
- 计算机组成原理 参考,计算机组成原理参考练习
- C# 串口操作系列(1) -- 入门篇,一个标准的,简陋的串口例子。
- VMware虚拟机安装Win10教程
- 【POJ】1384 Piggy-Bank
- HTML之meta属性大全
- IntelliJ IDEA文件名颜色分别表示的意思
- 操作Excel导入的问题(转)
- Atcoder Beginner Contest 260D - Draw Your Cards 解题报告
- 命令关闭所有cmd窗口
- 第十九节:依次逐个点亮LED之后,再依次逐个熄灭LED的跑马灯程序。
- hc-05蓝牙模块调试
- Excel VBA:按日期汇总计算输出结果(sumif)
- 计算机英语新词的认知语义阐释论文,计算机英文专业论文题目 计算机英文论文题目怎样定...
- Google Earth Engine(GEE)——Sentinel-3 OLCI EFR:海洋和陆地彩色地球观测全分辨率数据集
热门文章
- OpenCV入门及应用案例:手把手教你做DNN图像分类
- STM32之GPIO浮空输入例程
- python写传奇脚本,Python趣味打怪:60秒学会一个例子,147段简单代码助你从入门到大师 | 中文资源...
- mysql执行的list_CMD如何进入Mysql命令并执行相关查询
- 侵犯著作权法定赔偿额上限提高至500万元
- JSF请求处理过程(二)请求处理过程总览(FacesServlet#service)
- 数据结构基础(20) --图的存储结构
- 重温CLR(八 ) 泛型
- 应用前台省电秘籍——这些常见功耗雷坑不要再跳了
- usermod命令,用户密码管理,mkpasswd命令