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

P10977 Cut the Sequence 分析

题目概述

你需要将一个长度为 \(n\) 的序列 \(A\) 分成若干段,满足每段中数字之和 \(\leq m\),每段将这一段的最大值作为他的贡献,求他们贡献之和的最小值。

分析

蓝书好题!这是一道例题。

不难设 \(f_i\) 表示前 \(i\) 个数分成若干段所得到的最小答案。

显然转移有:

\[f_i=\min_{j\in[0,i-1],\sum_{k=j + 1}^i a_k\leq m}\{f_j+\max_{k\in[j+1,i]}a_k\} \]

直接转移是 \(\mathcal{O}(n^2)\) 的。

\(dp\) 的转移优化的指导思想就是及时排除不可能的决策。

我们不难根据题目的意思发现:\(f_i\) 是单调不降的。

\(a_{j}\leq a_{j+1}\)。那么显然:

\[f_{j-1}+\max\leq f_j+\max \]

也就是说我们维护一个依据坐标的 \(a_x\) 单调递减的队列即可。

当然我的转移还有可能来自最远的那个点。

代码

时间复杂度 \(\mathcal{O}(n\log n)\)

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <stdlib.h>
#include <vector>
#include <set>
#define int long long
#define N 100005
using namespace std;
int n,f[N],a[N],m,sum[N];
int head,tail,q[N << 2];
multiset<int> st;
signed main(){cin >> n >> m;for (int i = 1;i <= n;i ++) scanf("%lld",&a[i]),sum[i] = sum[i - 1] + a[i];for (int i = 1;i <= n;i ++)if (a[i] > m) return cout << -1,0;head = 1,tail = 0;for (int i = 1;i <= n;i ++) {while(head <= tail && sum[i] - sum[q[head]] > m) st.erase(f[q[head]] + a[q[head + 1]]),head ++;while(head <= tail && a[i] > a[q[tail]]) st.erase(f[q[tail - 1]] + a[q[tail]]),tail --;//纯粹更新fj+mx中的mx,因为你mx变大了那么肯定是越前面的点相较于当前的队尾的点更优啊if (head <= tail) st.insert(f[q[tail]] + a[i]);q[++tail] = i;int l = 0,r = i - 1,res = 0;while(l <= r) {int mid = l + r >> 1;if (sum[i] - sum[mid] <= m) res = mid,r = mid - 1;else l = mid + 1;}f[i] = f[res] + a[q[head]];if (!st.empty()) f[i] = min(f[i],*st.begin());}cout << f[n];return 0;
}//这题不难想到也可以用线段树优化dp

代码中的注释很精髓的。

http://www.gsyq.cn/news/60671.html

相关文章:

  • 软件工程学习日志2025.11.25
  • IT外包与勒索软件:英国经济安全面临的技术风险
  • NumPy广播机制深度解析:为什么有时能加,有时报错?
  • STL常用功能
  • Rust 零拷贝技术:从所有权到专业的系统调用的性能优化之道
  • 2025年下半年奖牌/水晶奖杯/奖杯定制/定制厂家口碑推荐榜
  • 低代码平台选型指南:企业避坑指南与核心评估维度
  • IMX6D的LVDS调试
  • 题解:CF1746D Paths on the Tree
  • 解决Windows窗口在屏幕外的问题
  • ai论文工具推荐:助力学术创作效率提升的实用工具
  • 2025年国际发表必备!多语言AI论文写作工具TOP 3 深度测评
  • 外观检测设备有哪些?制造业主流方案及应用解析
  • 光学膜外观缺陷检测设备:技术创新与行业应用动态
  • 睡眠不好吃的益生菌选哪家好?热门产品解析
  • 热力图数据可视化,调研
  • 元聚变科技集团估值:AI与数据要素驱动的企业价值解析
  • 有助于睡眠的益生菌推荐几款,这些口碑品牌值得关注
  • 苏州刑事律所推荐:如何选择专业可靠的法律服务机构
  • 上海值得投资的AI企业:聚焦技术创新与产业赋能潜力
  • 上海有哪些AI企业值得投资?行业潜力机构盘点
  • 2025 年成都蜂窝铝扣板生产厂家口碑推荐榜出炉
  • 2025年行业内四川噪声治理厂家口碑最好的厂家榜
  • 2025年11月山东石材雕刻机/墓碑雕刻机/绳锯机综合测评TOP10
  • 2025 卫浴健康革命!全链路杀菌马桶榜单,99% 家庭都需要
  • 2025年质量好的西安净化板实力厂家推荐排行榜
  • 2025年盐雾试验箱厂家口碑评分排行榜,淋雨试验箱/恒温恒湿试验箱/恒温恒湿房/光伏组件湿演式验箱/高低温试验箱盐雾试验箱厂商推荐排行
  • 中国私有云格局2025:Top 5 Private Cloud Providers Hybrid Cloud Trends
  • 【中山大学主办,IEEE出版】第五届通信技术与信息科技国际学术会议(ICCTIT 2025)
  • 创建随机数组