【洛谷P1182】数列分段 Section Ⅱ

数列分段 Section II

题目描述

对于给定的一个长度为 \(N\) 的正整数数列 \(A_{1\sim N}\),现要将其分成 \(M\)\(M\leq 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\) 个空格隔开的非负整数 \(A_i\),含义如题目所述。

输出格式

一个正整数,即每段和最大值最小为多少。

样例 #1

样例输入 #1

5 3
4 2 4 5 1

样例输出 #1

6

提示

对于 \(20\%\) 的数据,\(N\leq 10\)

对于 \(40\%\) 的数据,\(N\leq 1000\)

对于 \(100\%\) 的数据,\(1\leq N\leq 10^5\)\(M\leq N\)\(A_i < 10^8\), 答案不超过 \(10^9\)

解法&个人感想

其实这题我觉得没什么要说的 嘿嘿
因为跟前面那题跳石头思路太像了
主要就是要强调一个l,r赋初值的范围
我们都知道平时l一般赋值是1或者0 r我的个人习惯是1e9
但是本题中因为有阴间的hack数据 由题意得知我们此时为了取出最大的一个序列
而每个序列至少含有一个数字 所以l应该取a[i]中最大的那个值
而平时也经常看到r取a[i]之和 这里不加赘述

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n,m;
int a[100005];
bool check(int x){int cnt=1,ans=0;for(int i=1;i<=n;i++){if(ans+a[i]>x){ans=0;cnt++;}ans+=a[i];}return cnt<=m;
}
int main(){scanf("%d%d",&n,&m);int l=0,r=0,mid;for(int i=1;i<=n;i++) {scanf("%d",&a[i]);r+=a[i];l=max(l,a[i]);}while(l<=r){mid=(l+r)/2;if(check(mid)) r=mid-1;else l=mid+1;}printf("%d",l);system("pause");return 0;
}

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/877225.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python多线程爬取亚马逊商品数据

前言 新年快乐 1.环境准备 使用miniconda为亚马逊创建一个新环境,防止feapder和其他包冲突(比如scrapy)。 # 创建一个新的 Conda 环境: conda create -n python_feapder python=3.12# 查看已创建的环境 conda info --envs# 激活环境 conda activate python_feapder# 安装所…

Debug: debugger失效排查

MarkTime: 2024-11-24 19:25:17 LogTime: 2024-11-24 19:25:17记一次 debugger 断点失效原因的排查版本说明Chrome: 131.0.6778.86 Vue: 3.2.27结论检查 是否启用了 谷歌浏览器 的 自定义排除规则, 并把 node_modules 给排除了 检查 前端项目配置文件eslint 是否有覆盖规则, 使…

Debug: 前端发送请求参数传递null, 后端转换实体类对应变量自动注入默认值

MarkTime: 2024-11-18 16:19:47 LogTime: 2024-11-25 01:26:05实体类属性未正确定义原因导致: ​ 基础数据类型未被初始化, 会对对应变量赋予默认值(int: 0; boolean: false;...) ​ 包装类型允许存储null, 不会进行默认值赋予, 实体类中如果需要设置默认值需要自行指定(privat…

Vue: 项目映射到外网后, 前端打包配置调整

Mark Time: 2024-11-15 15:55:34 Log Time: 2024-11-24 16:00:00小项目, 记录下前端打包的debug过程(配置文件有做部分删减, 看个结构就好)说明 版本说明项目前后端分离axios: 0.24.0node: 14.18.0npm: 6.14.15vue: 3.2.27webpack: 4.46.0webpack-bundle-analyzer: 4.8.0背景说…

Pyton多线程爬取亚马逊商品数据

前言 新年快乐 1.环境准备 使用miniconda为亚马逊创建一个新环境,防止feapder和其他包冲突(比如scrapy)。 # 创建一个新的 Conda 环境: conda create -n python_feapder python=3.12# 查看已创建的环境 conda info --envs# 激活环境 conda activate python_feapder# 安装所…

独立开发经验谈:如何通过 Docker 让潜在客户快速体验你的系统

如果你的产品是和我的在线客服系统一样,100% 允许用户私有化部署的,那你一定要使用 Docker 技术,让用户能够快速体验到你的系统,以及能够在生产环境中非常轻松的把你的产品用起来。我在业余时间开发了一款自己的独立产品:升讯威在线客服与营销系统。陆陆续续开发了几年,从…

AP Physics C Mechanics Chapter 7 Rotation 1

RTVocabularyRigid body 刚体 Angular displacement 角位移 \(\Delta \theta\) Angular velocity 角速度 \(\omega\) Angular acceleration 角加速度 \(\alpha\) Rotational kinetic energy 旋转动能 \(KE_{\text{rotational}}\) Rotational inertia 转动惯量 \(I\) Torque 扭矩…

electrical, electric, electronic; comparison

electrical 3818 electric 2711 electronic 2422electrical vs electric left 4WORD 1: ELECTRICAL WORD W1 W2 PROFESSOR 118 0 , " said Charles Bouman, a Purdue professor of electrical and computer engineering.普渡大学电气和计算机工程教授查尔斯…

容斥与反演

容斥与反演 容斥 容斥原理 用于不重不漏地【表达/转化】某集合 广义容斥:合法方案数 = 总方案数 - 不合法方案数 狭义容斥: \[\left|\bigcup_{i = 1}^{n}S_i\right|=\sum_{x = 1}^{n}(-1)^{x - 1}\sum_{i_1<i_2<\cdots <i_x}\left|\bigcap_{j = 1}^{x}S_{i_j}\right…

数据库查询优化:提升性能的关键实践

title: 数据库查询优化:提升性能的关键实践 date: 2025/1/30 updated: 2025/1/30 author: cmdragon excerpt: 在当今数据驱动的商业环境中,数据库的性能直接影响着应用程序的响应速度和用户体验。查询优化是性能调优的重要组成部分,通过对 SQL 查询的分析与改进,减少查询…

记一次LLVM平行宇宙修包实战

最近加入了LLVM平行宇宙计划小组,在小组内提交了一定数量的PR。这个计划究竟是做什么的呢?LLVM平行宇宙计划是基于LLVM技术栈构建openEuler软件包,大白话讲就是原本一个软件包是用gcc/g++编译的,现在换成clang/clang++编译。虽然只是切换了编译工具,但是偶尔也有可能出现一…

spark--设置日志级别

修改前: Windows:修改后: Windows:对比: Windows:修改过程: Windows: C:\Users\Administrator\Documents\spark\spark-3.5.4-bin-hadoop3>copy conf\log4j2.properties.template conf\log4j2.properties 已复制 1 个文件。 rootLogger.level = info rootLogger.…