特别行动队-斜率优化
APIO2010特别行动队
令S为前缀和,那么n方DP:
f[i]=max{f[i],f[j]+a*(S[i]-S[j])*(S[i]-S[j])+b*(S[i]-S[j])+c};
展开,移项得到:
f[j]+a*s[j]*s[j]=(2*a*s[i]+b)s[j]+f[i]- a*s[i]*s[i]-b*s[i]-c。
即以f[j]+a*s[j]*s[j]为y,s[j]为x的一次函数,用斜率优化。
因为斜率单调递减,所以维护一个单调递减的上凸壳即可。
IL DB Y(int x) {return (DB)f[x]+a*S[x]*S[x];} IL DB Slope(int x,int y) {return (Y(x)-Y(y))/(DB)(S[x]-S[y]);}
while (L<R&&(DB)2*a*S[i]+b<=Slope(q[L+1],q[L])) ++L; f[i]=f[q[L]]+a*(S[i]-S[q[L]])*(S[i]-S[q[L]])+b*(S[i]-S[q[L]])+c;while (L<R&&Slope(i,q[R])>=Slope(q[R],q[R-1])) --R; q[++R]=i;
其实我们也可以把常数项b与s[j]的乘积也丢到y那边,斜率就变成了2*a*s[i],也是可以的,大家可以自己试试。
转载于:https://www.cnblogs.com/Bhllx/p/10363809.html
特别行动队-斜率优化相关推荐
- [APIO2010]特别行动队——[斜率优化DP]
[题目描述] 你有一支由 n 名预备役士兵组成的部队,士兵从 1 到 n 编号,要将他们拆分 成若干特别行动队调入战场.出于默契的考虑,同一支特别行动队中队员的编号 应该连续,即为形如(i,i+1,. ...
- 「APIO2010」 特别行动队 - 斜率优化Dp
题目描述 你有一支由nnn名预备役士兵组成的部队,士兵从1到nnn编号,要将他们拆分成若干特别行动队调入战场.出于默契考虑,同一支特别行动队中队员的编号应该连续,即为形如(i,i+1,...,i+k) ...
- APIO2010 特别行动队 斜率优化DP算法笔记
做完此题之后 自己应该算是真正理解了斜率优化DP 根据状态转移方程$f[i]=max(f[j]+ax^2+bx+c),x=sum[i]-sum[j]$ 可以变形为 $f[i]=max((a*sum[j ...
- bzoj 1911: [Apio2010]特别行动队 -- 斜率优化
1911: [Apio2010]特别行动队 Time Limit: 4 Sec Memory Limit: 64 MB Description Input Output Sample Input 4 ...
- 【bzoj1911】[Apio2010]特别行动队 斜率优化dp
题目描述 输入 输出 样例输入 4 -1 10 -20 2 2 3 4 样例输出 9 题解 斜率优化dp 设f[i]表示前i个士兵的战斗力之和的最大值. 那么有f[i]=f[j]+a*(sum[i]- ...
- BZOJ 1911: [Apio2010]特别行动队 [斜率优化DP]
1911: [Apio2010]特别行动队 Time Limit: 4 Sec Memory Limit: 64 MB Submit: 4142 Solved: 1964 [Submit][Sta ...
- 特别行动队[斜率优化]
传送门 首先考虑暴力的DP sum(i--j) 可以用前缀和维护 把式子拆开 ...是一坨常数,这里省略了 我们令 y=f[j]+a*s[j]*s[j]-b*s[j] , x=s[j] , k ...
- bzoj 2149 拆迁队 斜率优化+cdq分治
题面 题目传送门 解法 从来没写过这样的-- 第一问非常简单,能够从 j j j转移到 i i i的条件显然为 a [ i ] − a [ j ] ≥ i − j a[i]-a[j]≥i-j a[i] ...
- BZOJ 2149 拆迁队 斜率优化DP 主席树
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2149 题目大意: 一个长度为 n n的序列aa,改变其中的某些数使之成为一个单调递增序列, ...
最新文章
- “科创30条”鼓励高校开设AI新兴学科
- 35岁前务必成功的12级跳
- 可能是性价比最高的,0-180度乐高舵机解决方案
- 利用nf_conntrack机制存储路由,省去每包路由查找
- .NET基础 (03)生成、部署和管理
- HTML5中Web Worker技术的使用实例
- css里面的位置属性,CSS定位属性Position详解
- 拓端tecdat|R语言中小样本违反异方差性的线性回归
- 扫描答题卡答题区域划分
- Visual SourceSafe 2005介绍
- python 报错 'gbk' codec can't encode character '\xb5' in position 7431: illegal multib
- 1000句英语经典口语
- 整数划分问题 java
- SQL 中条件、循环语句的应用整理
- html5中表单属性值_如何在HTML表单中使用Autocompletetype属性
- UVA 11021 繁衍麻球
- Mini RTK | 小巧精致、好测量
- FPGA系统性学习笔记连载_Day7【16位比较器设计】 【原理及verilog实现、仿真】篇
- 理财系列 2 股票体检指标之市盈率
- 电脑拆机后,遇到的开机非常慢的问题解决