当前位置: 首页 > news >正文

题解:洛谷 P1182 数列分段 Section II

【题目来源】

洛谷:P1182 数列分段 Section II - 洛谷

【题目描述】

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

【输出】

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

【输入样例】

5 3
4 2 4 5 1

【输出样例】

6

【解题思路】

image

【算法标签】

《洛谷 P1182 数列分段》 #贪心# #二分# #前缀和#

【代码详解】

#include <bits/stdc++.h>
using namespace std;// 全局变量:
// n: 数字序列长度
// m: 最大分段数
// a[100005]: 存储数字序列
// l: 二分查找左边界(单个元素最大值)
// r: 二分查找右边界(所有元素总和)
int n, m, a[100005], l = 0, r = 0;int main()
{// 输入序列长度和最大分段数cin >> n >> m;// 输入数字序列并确定二分查找边界for (int i = 1; i <= n; i++){cin >> a[i];if (l < a[i]) l = a[i];  // 左边界取最大值r += a[i];               // 右边界为总和}// 二分查找最小化最大子段和while (l <= r){int mid = l + (r - l) / 2;  // 计算中间值,防止溢出int count = 1;             // 初始分段数为1int tmp = 0;               // 当前子段和// 计算当前mid值下需要多少段for (int i = 1; i <= n; i++){if (a[i] + tmp <= mid)  // 可以加入当前子段{tmp += a[i];}else  // 需要新开一段{count++;tmp = a[i];}}// 根据分段数调整搜索范围if (count <= m)  // 分段数不足或刚好,尝试更小的最大值{r = mid - 1;}else  // 分段数过多,需要更大的最大值{l = mid + 1;}}// 输出最终确定的最小化最大子段和cout << l << endl;return 0;
}

【运行结果】

5 3
4 2 4 5 1
6
http://www.jsqmd.com/news/390088/

相关文章:

  • 正规的美团礼品卡回收平台推荐 - 京顺回收
  • 题解:洛谷 P1873 [COCI 2011/2012 #5] EKO / 砍树
  • 题解:洛谷 P2440 木材加工
  • 【LeetCode 每日一题】3314. 构造最小位运算数组 I —— (解法二) - 详解
  • 题解:洛谷 P1102 A-B 数对
  • Smoke and Mirrors inspiration
  • 这个时间序列预测模型有点意思,直接上代码更直观。咱们先看看整个模型的架构长啥样
  • 题解:洛谷 P1678 烦恼的高考志愿
  • 行业内服务好的盒马鲜生礼品卡回收平台推荐 - 京顺回收
  • 题解:洛谷 P1024 [NOIP 2001 提高组] 一元三次方程求解
  • 题解:洛谷 P2249 【深基13.例1】查找
  • 信任就是最好的协作:openclaw的系统提示词分析
  • AI大模型高薪方向揭秘:大模型时代,小白也能弯道超车?高薪收藏帖+90天转型路线图免费领!
  • 大模型国家标准落地,大模型应用指南:小白也能掌握的金融科技新趋势,收藏学习必备!
  • 阿里通义千问团队揭秘Gated Attention,让你的大模型学习效率飙升,速收藏!
  • 从DeepSeek到Seedance2.0,大模型集体爆发!国产AI突然跃迁,小白也能轻松上车收藏!
  • 2026大学生转行,推荐一个好就业的方向——人工智能大模型,开启高薪就业新赛道!
  • 【Hot100-Java便捷】:两数之和 (Two Sum) —— 从暴力枚举到哈希表的思维跃迁
  • 键盘与鼠标:人机交互的奥秘深度解析:原理、实战与踩坑记录
  • OpenClaw怎么做到不串台、能并行、还总回对群 amp;#129302;✅(含源码解析)--OpenClaw系列第1期
  • GLM5.0发布:国产算力突破,大模型进化为智能工作系统,速来收藏学习!
  • AI产品经理转行大模型必读,央视都说AI大模型人才缺口大,为什么大家还是找不到工作?
  • Transformer大模型从入门到进阶:25+核心知识点解析(收藏版)
  • 2026主流电商小程序平台深度测评:功能优势与适用场景全解析
  • 论文阅读“EFFICIENT VISION-LANGUAGE-ACTION MODELS FOR EMBODIED MANIPULATION: A SYSTEMATIC SURVEY“
  • 【GitHub项目推荐--pySLAM:开源、模块化、可扩展的视觉SLAM框架】⭐⭐⭐⭐⭐
  • 当一家公司拥有37,000个智能体:科技投资公司企业AI治理实验
  • 在线图片压缩工具怎么选?几款免费好用的网站对比
  • 【GitHub项目推荐--ORB-SLAM2:开源实时视觉SLAM系统】
  • SpringBoot集成SpringAI与Ollama本地大模型