P1182 数列分段 Section II
P1182 数列分段 Section II - 洛谷
题目描述
对于给定的一个长度为 N 的正整数数列 A1∼AN,现要将其分成 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
说明/提示
- 对于 20% 的数据,N≤10。
- 对于 40% 的数据,N≤1000。
- 对于 100% 的数据,1≤N≤105,M≤N,Ai<108,答案不超过 109。
思路:
暴力,利用桶思维,第一个满足条件的就是答案
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll N,M;
const ll L = 1e5+10;
ll a[L];
bool check(ll x)
{
// cout << x << endl;ll m = x,t = x,cnt = 1;for(ll i = 1 ; i <= N ; i++){if(t < a[i])return false;if(m - a[i] >= 0){m -= a[i];}else{m = x;m -= a[i];cnt++;}}if(cnt == M)return true;elsereturn false;
}
int main(void)
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin >> N >> M;for(ll i = 1 ; i <= N ; i++)cin >> a[i];for(ll i = 1 ; i <= 1e7 ; i++){if(check(i)){cout << i;break;}} return 0;}

思路:
二分优化,如果我们画二分图我们会发现一个现象。

发现这个条件变化很多,是因为当枚举的区域最大和。
1.我们需要注意l的取值,为了杜绝一开始的cnt < M,l可以取值为数字里面的最大值max_num,这样保证了至少有一个桶。
2.我们不需要注意r的取值,因为右半部分只有cnt<M,这个是在理解范围内的。取最大的数据即可。
代码如下:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll N,M,max_num = -1e9,;
const ll L = 1e5+10;
ll a[L];
bool check(ll mid)
{ll m = mid;ll cnt = 1;for(ll i = 1 ; i <= N ; i++){if(m - a[i] >= 0){m -= a[i];}else{m = mid;m -= a[i];cnt++;}}if(cnt > M )return false;elsereturn true;
}
int main(void)
{cin >> N >> M;for(ll i = 1 ; i <= N ; i++){cin >> a[i];max_num = max(max_num,a[i]);}ll l = max_num - 1, r = 1e9;while(l + 1 != r){ll mid = (l + r)/2;if(check(mid)){r = mid;}else{l = mid;}}cout << r;return 0;}

相关文章:
P1182 数列分段 Section II
P1182 数列分段 Section II - 洛谷 题目描述 对于给定的一个长度为 N 的正整数数列 A1∼AN,现要将其分成 M(M≤N)段,并要求每段连续,且每段和的最大值最小。 关于最大值最小: 例如一数列 4 2 4 5 1…...
比手动备份快 Iperius全自动加密备份,NAS/云盘/磁带机全兼容
IperiusBackupFull是一款专为服务器和工作站设计的备份解决方案,它同时也是一款针对Windows 7/8/10/11/Server系统的简洁且可靠的备份软件。该软件支持增量备份、数据同步以及驱动器镜像,确保能够实现完全的系统恢复。在备份存储方面,Iperius…...
从概率到梯度:理解分类问题中交叉熵的优越性
分类问题一般使用交叉熵(Cross-Entropy)而不是平方损失(Square Loss)函数1. **概率解释**2. **梯度性质**3. **对错误的惩罚**4. **计算复杂度**5. **总结** 分类问题一般使用交叉熵(Cross-Entropy)而不是平…...
2025最新版Ubuntu Server版本Ubuntu 24.04.2 LTS下载与安装-详细教程,细致到每一步都有说明
官网 https://ubuntu.com/ 下载 点击菜单 Prodercts> Ubuntu OS>Ubuntu Server 点击下载 下载后会有个弹窗 安装 选择第一个 install Ubuntu Server 直接默认,选择English 【默认】 选择键盘布局【默认】 选择安装配置【默认】 配置网络 我这里选择…...
更新测试环境构建命令以解决构建失败问题
本段代码解决 更新测试环境构建命令以解决构建失败问题 //本项目是reactumi3antdesign 搭建的后台管理系统 "build:test": "cross-env UMI_ENVtest NODE_OPTIONS--openssl-legacy-provider umi build"**原因:**Node.js v17 的 OpenSSL 3.0 与旧…...
C 语言中, scanf 函数在哪些情况下会结束输入读取:
在 C 语言中, scanf 函数在以下几种情况下会结束输入读取: : 1. 遇到指定格式匹配失败: scanf 按照格式字符串要求读取输入。当输入数据格式与格式字符串不匹配时,就会结束读取。例如 scanf(“%d”, &num) 要求输…...
树莓派5-GPIO和40针引脚
1.树莓派5引脚图 2.GPIO 引脚作用 (1) 电压 板上有两个 5V 引脚和两个 3.3V 引脚,以及一些不可配置的接地引脚 (0V)。其余引脚均为通用 3.3V 引 脚,这意味着输出设置为 3.3V,输入可接 3.3V。 (2) 输出 指定为输出引脚的 GPIO 引脚可设置为…...
【数据库】sql错题详解
1. 执行子查询 SELECT 供应商号 FROM 订购单 WHERE 职工号 IN (E1, E3) GROUP BY 供应商号 HAVING COUNT(DISTINCT 职工号) 2筛选职工号为 E1 或 E3 的记录: 依据 WHERE 职工号 IN (E1, E3) 这个条件,从 订购单 表中把职工号为 E1 或者 E3 的记录筛选出…...
搭建主从DNS、nfs、nginx
任务需求: 客户端通过访问 www.nihao.com 后,能够通过 dns 域名解析,访问到 nginx 服务中由 nfs 共享的首页文件,内容为:Very good, you have successfully set up the system. 各个主机能够实现时间同步,…...
C#重写treeView控件
1.先准备两张图片downdrop.png、downdrop_open.png放在项目Resources里 2.新建用户控件BaseTreeView控件 3.重写控件继承TreeView,记得删除AutoScaleMode这一行,否则会报错 public partial class BaseTreeView : TreeView {//这个属性貌似不起作用&…...
JS自动装箱(Auto-boxing)机制深度解析
📦 JS自动装箱(Auto-boxing)机制深度解析 自动装箱(Autoboxing) 是 JavaScript 的一项特性 🌟 核心概念速览 自动装箱 原始值临时变身对象 当对原始值调用方法或访问属性时,JS 引擎会自动将其转换为对应的包装对象&…...
ArcGIS 10.8.1之后发布栅格数据的MapServer 动态工作空间 替换数据源渲染问题
背景 经过测试,Server 10.8.1、11.0、11.1发布相关服务设置动态空间之后,前端都无法自动读取同名的clr色彩映射表文件进行渲染,服务都是由ArcGIS Pro进行发布。 原因 基于ArcMap发布的服务才支持,但是10.8.1之后不支持ArcMap发…...
Java集合框架深度剖析:从数据结构到实战应用
引言 Java集合框架是Java开发中的核心组件之一,其设计目标是提供高性能、高复用性的数据容器。无论是数据处理、缓存设计还是高并发场景,集合框架都扮演着关键角色。本文将从List、Map、Set三大核心接口出发,深入剖析其主流实现类࿰…...
【MySQL】监控MySQL
目录 使用状态变量监控MySQL 使用性能模式(Performance Schema)监控MySQL 1.性能模式 2.性能模式设置表 3.sys模式 使用状态变量监控MySQL 使用 show status 语句评估系统运行状况。 可以添加范围修饰符global或session来显示全局或本地状态信息。…...
涅槃上岸,入陕进军,复试全程流程开启!
复试决胜局,整装待发,上岸西电! 线下复试注意事项、全流程、录取后西安旅游提前告知! 过两天考研复试笔试、机试(如果有)、面试就要开始了,我们需要准备很多东西,学长从以下几个方面…...
msyql--基本操作之运维篇
检查 root 用户的权限 查看该用户针对这个数据库的权限 -- 如果在终端连接mysql时需要 mysql -u root -p -- 查看用户权限 SELECT user, host FROM mysql.user WHERE user root;可以看的出来root有他的访问权限,如过没有localhost或者% 说明没有访问权限 添加…...
鸿蒙开发:openCustomDialog关闭指定Dialog
前言 本文基于Api13 openCustomDialog弥补了CustomDialogController在使用上存在的诸多限制,实现了可以在任意位置上弹出,可以说是非常的方便;但是,在使用的时候遇到了一些小阻碍,比如一个页面中可能存在多个弹窗&…...
es6 fetch
对比XHR 🛠️ fetch 所有配置项 fetch(url, {// 核心配置 method: GET, // HTTP 方法: GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONSheaders: { // 请求头(支持 Headers 对象或普通对象)Content-Type: applicati…...
Apache Tomcat RCE漏洞(CVE-2025-24813)
一,漏洞描述 该漏洞在于 Tomcat 在处理不完整PUT请求上传时,会使用了一个基于用户提供的文件名和路径生成的临时文件。 二,漏洞条件 1,默认 Servlet 启用了写权限(默认禁用) 2,启用了部分PUT…...
Apache HttpClient使用
一、Apache HttpClient 基础版 HttpClients 是 Apache HttpClient 库中的一个工具类,用于创建和管理 HTTP 客户端实例。Apache HttpClient 是一个强大的 Java HTTP 客户端库,用于发送 HTTP 请求并处理 HTTP 响应。HttpClients 提供了多种方法来创建和配…...
智能汽车图像及视频处理方案,支持视频星轨拍摄能力
美摄科技作为智能汽车图像及视频处理领域的先行者,正以革新性的技术引领着行业的未来发展。美摄科技智能汽车图像及视频处理方案,一个集高效性、智能化、画质增强于一体的创新解决方案,旨在重塑智能汽车图像画质的新标准,并支持前…...
【微服务架构】本地负载均衡的实现(基于随机算法)
前言 负载均衡 概念:一种将网络流量或业务请求均匀分配到多个服务器或服务实例上的技术,旨在提高系统的可用性、性能和可伸缩性。作用: 提高性能:通过将请求分散到多个实例上,避免单个实例因请求过多而过载ÿ…...
C盘急救实录:从爆红到畅快
极速救援通道(懒人专享) 老规矩,先上王炸方案!”小番茄C盘清理器”直达链接:https://cclean-cdn.xkbrowser.com/cleanmaster/FanQieClean_13046_st.exe 这个神器有三绝: 智能扫描引擎:能识别23…...
从零开始理解基于深度学习的语义分割模型:RCA与RCM模块的实现
从零开始理解基于深度学习的语义分割模型:RCA与RCM模块的实现 随着深度学习技术的发展,图像分割任务取得了长足的进步。本文将从一个具体的PyTorch代码实例出发,带大家了解一种 novel 的语义分割网络架构——RCA(Rectangular Self-Calibration Attention)和 RCM(Rectang…...
openGl片段着色器的含义
片段着色器的含义及代码中的应用说明: 1. 片段着色器的基本概念 片段着色器(Fragment Shader)是OpenGL着色器管线中的关键组件,主要用于计算屏幕空间中每个片段(对应像素)的最终颜色。它是图形渲染流程的…...
ROS2 部署大语言模型节点
4GB GPU的DeepSeek-Coder 1.3B模型,并且它已经被量化或优化过。以下是具体的步骤: 安装必要的依赖项: pip install transformers torch grpcio googleapis-common-protos创建一个新的ROS 2包: cd ~/ros2_ws/src ros2 pkg creat…...
UART转APB模块ModelSim仿真
一、简介 之前介绍过一个UART转AHB模块,这个代码的框架有个好处,就是FPGA内总线接口比较容易修改成其他总线接口。下图是UART转AHB模块中子模块uart_ahb_mst的框图,主要有三个状态机: (1) UART_RX_FSM将接收…...
【LeetCode 题解】算法:4.寻找两个正序数组的中位数
1. 引言:挑战 LeetCode 经典算法题 在算法这片广袤无垠的天地里,一道道经典题目宛如夜空中熠熠生辉的星辰,持续吸引着开发者们投身其中,不断探索。今天,我们继续将目光聚焦于 LeetCode 平台上一道极具代表性的题目&am…...
基于 SGLang 部署 Qwen2.5 7B 模型
本文将详细介绍如何使用 SGLang 快速部署 Qwen2.5 7B 模型,并深入探讨 SGLang 的关键性能优化技术,以及预期可以达到的延迟和吞吐量。 1. SGLang 框架介绍 SGLang 旨在解决 LLM 服务中的核心挑战: 高延迟: LLM 推理通常需要较长的计算时间,导致响应延迟高。低吞吐量: 由…...
Cesium 自定义路径导航材质
cesium 自定义路径导航纹理图片随便更换,UI 提供设计图片即可达到效果; 打开小马的weix 关注下 搜索“技术链” 回复关键词《《路径》》获取原始代码; 拿到就能用轻松解决!帮忙点个关注吧!...
