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

特别行动队-斜率优化相关推荐

  1. [APIO2010]特别行动队——[斜率优化DP]

    [题目描述] 你有一支由 n 名预备役士兵组成的部队,士兵从 1 到 n 编号,要将他们拆分 成若干特别行动队调入战场.出于默契的考虑,同一支特别行动队中队员的编号 应该连续,即为形如(i,i+1,. ...

  2. 「APIO2010」 特别行动队 - 斜率优化Dp

    题目描述 你有一支由nnn名预备役士兵组成的部队,士兵从1到nnn编号,要将他们拆分成若干特别行动队调入战场.出于默契考虑,同一支特别行动队中队员的编号应该连续,即为形如(i,i+1,...,i+k) ...

  3. APIO2010 特别行动队 斜率优化DP算法笔记

    做完此题之后 自己应该算是真正理解了斜率优化DP 根据状态转移方程$f[i]=max(f[j]+ax^2+bx+c),x=sum[i]-sum[j]$ 可以变形为 $f[i]=max((a*sum[j ...

  4. bzoj 1911: [Apio2010]特别行动队 -- 斜率优化

    1911: [Apio2010]特别行动队 Time Limit: 4 Sec  Memory Limit: 64 MB Description Input Output Sample Input 4 ...

  5. 【bzoj1911】[Apio2010]特别行动队 斜率优化dp

    题目描述 输入 输出 样例输入 4 -1 10 -20 2 2 3 4 样例输出 9 题解 斜率优化dp 设f[i]表示前i个士兵的战斗力之和的最大值. 那么有f[i]=f[j]+a*(sum[i]- ...

  6. BZOJ 1911: [Apio2010]特别行动队 [斜率优化DP]

    1911: [Apio2010]特别行动队 Time Limit: 4 Sec  Memory Limit: 64 MB Submit: 4142  Solved: 1964 [Submit][Sta ...

  7. 特别行动队[斜率优化]

    传送门 首先考虑暴力的DP sum(i--j) 可以用前缀和维护 把式子拆开 ...是一坨常数,这里省略了 我们令 y=f[j]+a*s[j]*s[j]-b*s[j]  ,  x=s[j]  ,  k ...

  8. bzoj 2149 拆迁队 斜率优化+cdq分治

    题面 题目传送门 解法 从来没写过这样的-- 第一问非常简单,能够从 j j j转移到 i i i的条件显然为 a [ i ] − a [ j ] ≥ i − j a[i]-a[j]≥i-j a[i] ...

  9. BZOJ 2149 拆迁队 斜率优化DP 主席树

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2149 题目大意: 一个长度为 n n的序列aa,改变其中的某些数使之成为一个单调递增序列, ...

最新文章

  1. “科创30条”鼓励高校开设AI新兴学科
  2. 35岁前务必成功的12级跳
  3. 可能是性价比最高的,0-180度乐高舵机解决方案
  4. 利用nf_conntrack机制存储路由,省去每包路由查找
  5. .NET基础 (03)生成、部署和管理
  6. HTML5中Web Worker技术的使用实例
  7. css里面的位置属性,CSS定位属性Position详解
  8. 拓端tecdat|R语言中小样本违反异方差性的线性回归
  9. 扫描答题卡答题区域划分
  10. Visual SourceSafe 2005介绍
  11. python 报错 'gbk' codec can't encode character '\xb5' in position 7431: illegal multib
  12. 1000句英语经典口语
  13. 整数划分问题 java
  14. SQL 中条件、循环语句的应用整理
  15. html5中表单属性值_如何在HTML表单中使用Autocompletetype属性
  16. UVA 11021 繁衍麻球
  17. Mini RTK | 小巧精致、好测量
  18. FPGA系统性学习笔记连载_Day7【16位比较器设计】 【原理及verilog实现、仿真】篇
  19. 理财系列 2 股票体检指标之市盈率
  20. 电脑拆机后,遇到的开机非常慢的问题解决

热门文章

  1. 推荐一个高仿微信的项目 有点屌!!
  2. #百知教育 - 刘浩讲师 - 接口
  3. 证券投资基金会计核算准则学习
  4. oracle数据库状态
  5. DOS批处理脚本语言简介与详细说明
  6. android mtk 系统架构,Android振动器(Vibrator)系统详解
  7. office2007中公式编辑器
  8. JDBC连接SQL Server数据库[windows验证模式连接+SQL server验证]
  9. python怎么计算曲面的表面积_利用simpson积分公式计算曲面表面积
  10. 点石互动--石头之:seo不是简单的技术问题