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

CF2053I1

题目大意:

有一个长度为 \(n\) 的满足 \(\max(|a_{i}|) \le \sum_{i = 1}^{n} a_{i}\) 的数组 \(a\),你要找到一个长度为 \(m\) 的序列 \(b\),满足:

  1. \(a\)\(b\) 的子序列。
  2. \(\sum_{i = 1}^{n} a_{i} = \sum_{i = 1}^{m} b_{i}\)
  3. \(b\) 的最大子段和尽可能的小。
    \(m\) 的最小值。
    \(n \le 3 \times 10^6\)

解题思路:

考虑这个 \(b\) 的最大子段和最小能小到多小。
由于他 \(a\) 满足了一个奇葩条件,而且我们要保证全局和与 \(a\) 的全局和相同。
所以我们猜测他的最大子段和可以调成全局和。

也就是我们现在要满足每个子区间的和都没有全局和大。
注意到这个全局和的特殊条件,而子区间可以写成 \(sum_{r} - sum_{l - 1}\)

由于全局和 \(= sum_{n} - sum_{0}\),也就是我们要满足所有 \(sum_{r} \le sum_{n}\)\(sum_{l - 1} \ge sum_{0}\)
也就是对于所有的 \(0 \le sum_{i} \le S\),其中 \(S\) 表示全局和。

注意到这样无论怎么相减都不会超过 \(S - 0 = S\) 了,所以这是一个充要条件。

然后我们考虑去解决这个东西,显然两个位置之间最多加一个数。
看到 \(3 \times 10^6\),考虑贪心,但是我们发现这个贪心并没有有保证正确性的算法。

相对地,我们考虑 dp,设 \(dp_{i,j}\) 表示前 \(i\) 个数考虑完了,现在和为 \(j\) 的最小操作次数。
枚举 \(i\)\(i + 1\) 中间填的数是什么,时间复杂度 \(O(n \times S^2)\)

但是我们注意到我们可以任意填一个数会让 \(j\) 这一维变成任意数,并且转移类似区间平移。
打表发现 \(dp_{i}\) 的值一定只有 \(x,x+1\),且 \(x\) 是一段区间。

那么我们只需要维护这个区间就可以了。
\(O(n)\)

http://www.jsqmd.com/news/429221/

相关文章:

  • TDengine IDMP 数据可视化——组态面板
  • Task05:树
  • WinForms + OpenTK (OpenGL 3.3) 粒子动画实测:100 万粒子,流畅无压力 - 行人-
  • 3分钟搞懂深度学习AI:毁掉AI的广播机制陷阱
  • 云原生数据仓库建设:基于Snowflake的最佳实践
  • RTTI对性能的影响
  • CF2195B题解
  • 无状态和有状态应用部署
  • Three.js + WebGL 粒子动画实测:10 万粒子,流畅无压力 - 行人-
  • 文本生成在智能客服系统中的实战应用
  • 制造业如何做豆包广告推广,有相关的服务商吗? - 品牌2026
  • 豆包广告怎么做?应该联系哪家公司? - 品牌2026
  • C# 实现多种形式的3D翻转页面效果 - 行人-
  • 技术负责人的述职报告应该怎么写?
  • AI Agent框架探秘:拆解 OpenHands(10)--- Runtime
  • Kimi/Minimax Claw智能体爆发:Agent编排与落地实战
  • 别再乱选!2026全案装修性价比之王大揭秘 - 品牌测评鉴赏家
  • 豆包可以投放广告吗?应该联系哪家公司? - 品牌2026
  • 深耕装修圈5年实测|2026全案装修哪家服务好?避坑不花冤枉钱 - 品牌测评鉴赏家
  • Markdown 链接
  • 飘屏的火焰: DirectX 12 + ComputeSharp + Win32 - 行人-
  • 2026装修不踩坑!专业全案装修公司优选指南 - 品牌测评鉴赏家
  • 2026年国冠锻造:精工锻造、一体化制造,服务近三百家伙伴 - 速递信息
  • 装修小白必看!全案装修公司前十实力大揭秘 - 品牌测评鉴赏家
  • 新工业革命:Creo综合建模与3D打印【1.6】
  • 卫生间隔断常见问题解答(2026最新专家版) - 速递信息
  • 供应链六大流详解:物流、信息流、资金流、商流、技术流、数据流
  • 2026年测量仪行业佼佼者:这些企业值得您关注,分析仪/摩擦系数仪/测试仪/扭矩仪/测量仪/检测仪,测量仪公司排行榜 - 品牌推荐师
  • 大模型智能体搭建完全指南:收藏这篇少走一年弯路
  • Solutions - NOISG 2020 重现赛