
动态规划--斜率优化DP
niiick
OIer/ACMer
展开
-
BZO1911 ||洛谷P3628 [APIO2010]特别行动队【斜率优化DP】
Time Limit: 4 Sec Memory Limit: 64 MB Description Input Output HINT 题目分析 斜率优化DP–详解 首先容易想到一个简单的O(n2)O(n^2)O(n2)算法 dp[i]dp[i]dp[i]表示前iii个士兵分组能得到的最大战斗力 dp[i]=max( dp[j]+a∗(sum[i]−sum[j])2+b∗(s...原创 2018-10-25 18:25:27 · 184 阅读 · 0 评论 -
BZOJ3156 防御准备【斜率优化DP】
Time Limit: 10 Sec Memory Limit: 512 MB Description Input 第一行为一个整数N表示战线的总长度。 第二行N个整数,第i个整数表示在位置i放置守卫塔的花费Ai。 Output 共一个整数,表示最小的战线花费值。 HINT 1<=N<=106,1<=Ai<=1091<=N&...原创 2018-10-25 19:32:14 · 173 阅读 · 0 评论 -
斜率优化DP--详解
参考资料 《算法竞赛–进阶指南》 学习斜率优化前请确认你已对单调队列有了充分了解 下面我们通过这样一道题来逐步引入斜率优化 CodeVS 2212 任务安排 N个任务排成一个序列在一台机器上等待完成(顺序不得改变),这N个任务被分成若干批,每批包含相邻的若干任务。从时刻0开始,这些任务被分批加工,第i个任务单独完成所需的时间是Ti。在每批任务开始前,机器需要启动时间S,而完成这批任务所需的时间是...原创 2018-10-23 22:33:27 · 1346 阅读 · 0 评论 -
BZOJ1010 ||洛谷P3195 [HNOI2008]玩具装箱TOY【斜率优化DP】
Time Limit: 1 Sec Memory Limit: 162 MB Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压 缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中。P教授有编号为1…N的N件玩具,第i件玩具经过 压缩后变成一维长度为Ci.为了方便整理,P教授要求在一个一维容器中的玩具编号是连续的。同时如...原创 2018-10-24 17:41:16 · 211 阅读 · 0 评论 -
BZOJ3437 小P的牧场【斜率优化DP】
Time Limit: 10 Sec Memory Limit: 128 MB Description 小P在MC里有n个牧场,自西向东呈一字形排列(自西向东用1…n编号),于是他就烦恼了:为了控制这n个牧场,他需要在某些牧场上面建立控制站,每个牧场上只能建立一个控制站,每个控制站控制的牧场是它所在的牧场一直到它西边第一个控制站的所有牧场(它西边第一个控制站所在的牧场不被控制)(如果它西边不存在...原创 2018-10-24 20:38:55 · 192 阅读 · 0 评论 -
HDU - 3507 Print Article【斜率优化】
Time limit 3000 ms Memory limit 65536 kB Zero has an old printer that doesn’t work well sometimes. As it is antique, he still like to use it to print articles. But it is too old to work for a long tim...原创 2019-01-18 14:49:44 · 128 阅读 · 0 评论 -
BZOJ1492 || 洛谷P4027 [NOI2007]货币兑换【斜率优化】【Splay/CDQ分治维护凸包】
Description 小Y最近在一家金券交易所工作。该金券交易所只发行交易两种金券:A纪念券(以下简称A券)和 B纪念券(以下简称B券)。每个持有金券的顾客都有一个自己的帐户。金券的数目可以是一个实数。每天随着市场的起伏波动,两种金券都有自己当时的价值,即每一单位金券当天可以兑换的人民币数目。我们记录第 K 天中 A券 和 B券 的价值分别为 AK 和 BK(元/单位金券)。为了方便顾客,金券交...原创 2019-01-19 12:38:24 · 260 阅读 · 0 评论 -
洛谷P3648 [APIO2014]序列分割【斜率优化】
时空限制 2000ms / 512MB 题目描述 你正在玩一个关于长度为 n 的非负整数序列的游戏。这个游戏中你需要把序列分成 k + 1 个非空的块。为了得到 k + 1块,你需要重复下面的操作 k次: 选择一个有超过一个元素的块(初始时你只有一块,即整个序列) 选择两个相邻元素把这个块从中间分开,得到两个非空的块。 每次操作后你将获得那两个新产生的块的元素和的乘积的分数。你想要最大化最后的总得...原创 2019-03-30 16:34:11 · 172 阅读 · 0 评论