前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >bzoj 2006. [NOI2010]超级钢琴 题解

bzoj 2006. [NOI2010]超级钢琴 题解

作者头像
yzxoi
发布2022-09-19 13:12:59
3870
发布2022-09-19 13:12:59
举报
文章被收录于专栏:OI

Description

题目链接

给定一个长度为 n 的序列,选出 k 个长度在 [L,R] 之间的子段(不可重复),求 k 个子段和的最大值。

N\leq 500,000,k\leq 500,000,-1000\leq A_i \leq 1000,1\leq L\leq R\leq N

Solution

由于 n 十分巨大,我们不可能把所有符合条件的子段都列举出来再比较她们的大小,由于 k 比较小,于是我们需要考虑如何贪心选择最大满足的子段,选择 k 次即是答案。

定义 f(i,l,r) 表示以 i 为右端点,左端点在 [L,R] 区间内的最大子段和,{sum}_i 表示前缀和。那么显然可知:

$$f(i,l,r)=\max\

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-10-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Description
  • Solution
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档