[BZOJ1911] [Apio2010]特别行动队
来源:互联网 发布:stringbuffer转成数组 编辑:程序博客网 时间:2024/04/28 07:05
传送门
http://www.lydsy.com/JudgeOnline/problem.php?id=1911
题目大意
题解
考虑斜率优化
我们要最大值,所以队尾保留斜率更大的
const maxn=1000000;var sum,x,y,dp:array[0..maxn]of int64; t:array[0..maxn]of longint; i,j,k:longint; n,l,r,tt:longint; a,b,c:int64;function max(a,b:int64):int64;begin if a>b then exit(a) else exit(b);end;begin readln(n); readln(a,b,c); sum[0]:=0; for i:=1 to n do begin read(x[i]); sum[i]:=sum[i-1]+x[i]; y[i]:=b+2*a*sum[i]; end; dp[0]:=0; x[0]:=0; l:=1; r:=1; t[1]:=0; for i:=1 to n do begin while (l<r)and((x[t[l]]-x[t[l+1]])<(sum[t[l]]-sum[t[l+1]])*y[i]) do inc(l); tt:=t[l]; dp[i]:=dp[tt]+a*(sum[i]-sum[tt])*(sum[i]-sum[tt])+b*(sum[i]-sum[tt])+c; x[i]:=dp[i]+a*sum[i]*sum[i]; while (l<r)and(((x[t[r-1]]-x[t[r]])*(sum[t[r]]-sum[i]))<((x[t[r]]-x[i])*(sum[t[r-1]]-sum[t[r]]))) do dec(r); inc(r); t[r]:=i; end; writeln(dp[n]);end.
1 0
- [Bzoj1911][Apio2010]特别行动队
- bzoj1911 [Apio2010]特别行动队
- APIO2010特别行动队bzoj1911
- [BZOJ1911][Apio2010]特别行动队
- [BZOJ1911] [Apio2010]特别行动队
- BZOJ1911: [Apio2010]特别行动队
- bzoj1911【APIO2010】特别行动队
- BZOJ1911 Apio2010 特别行动队
- bzoj1911[Apio2010] 特别行动队
- 【APIO2010】bzoj1911 特别行动队
- bzoj1911: [Apio2010]特别行动队
- bzoj1911: [Apio2010]特别行动队
- bzoj1911 [Apio2010]特别行动队
- 【BZOJ1911】【APIO2010】特别行动队
- BZOJ1911: [Apio2010]特别行动队
- 【bzoj1911】【APIO2010】【特别行动队】【斜率优化】
- 【bzoj1911】[Apio2010]特别行动队commando
- BZOJ1911 [Apio2010]特别行动队 斜率优化
- swift-基础02-注释与数值
- Halcon感兴趣区域填充特定颜色
- STL_8: 迭代器
- delphi ide插件大全
- bzoj2748 音量调节 背包动规
- [BZOJ1911] [Apio2010]特别行动队
- 待机时反复按Power键概率性重启 - 解决问题
- Nginx 权威解读
- Swift学习笔记——基础运算符
- Android-Environment Sensors
- 属性动画ValueAnimator和ObjectAnimator的使用
- 《ios—单个对象的内存管理》
- 初识ACM——幸好不用排序
- Hibernate之Query.uniqueResult()结果为数值的注意事项