斜率优化专题4——bzoj 1911: [Apio2010] 特别行动队 题解
来源:互联网 发布:谷歌看图软件下载 编辑:程序博客网 时间:2024/05/21 08:37
【原题】
1911: [Apio2010]特别行动队
Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 2134 Solved: 911
Description
Input
Output
Sample Input
4
-1 10 -20
2 2 3 4
-1 10 -20
2 2 3 4
Sample Output
9
HINT
【分析】只要跟着我前面的题目走,这道题真的是太水了。神马题解都不用参考,公式随便推。
易知方程是f[i]=max(f[j]+A*(sum[i]-sum[j])^2+B*(sum[i]-sum[j])+C)
设k比j优。
f[k]+A(sum[i]-sum[k])^2+B(sum[i]-sum[k])+C>f[j]+A(sum[i]-sum[j])^2+B(sum[i]-sum[j])+C
f[k]-2*A*sum[i]*sum[k]+A*sum[k]^2-B*sum[k]>f[j]-2*A*sum[i]*sum[j]+A*sum[j]^2-B*sum[j]
f[k]-f[j]+A*(sum[k]^2-sum[j]^2)+B*(sum[j]-sum[k])>2*A*sum[i]*(sum[k]-sum[j])
(f[k]-f[j]+A*(sum[k]^2-sum[j]^2)+B*(sum[j]-sum[k]))/2/(sum[k]-sum[j])/A<sum[i]
【代码】
#include<cstdio>#include<algorithm>using namespace std;long long n,a[1000005],f[1000005],q[1000005],sum[1000005],ans,h,t,i,A,B,C,j;long long M(long long x){return x*x;}double xie(long long k,long long j){ double temp=(f[k]-f[j]+A*(M(sum[k])-M(sum[j]))+B*(sum[j]-sum[k])+0.0)/2.0/(sum[k]-sum[j])/A; return temp;}int main(){ scanf("%lld",&n); scanf("%lld%lld%lld",&A,&B,&C); for (i=1;i<=n;i++) scanf("%lld",&a[i]),sum[i]=sum[i-1]+a[i]; f[0]=0;h=t=1ll;q[1]=0; for (i=1;i<=n;i++) { while (h<t&&xie(q[h+1],q[h])<=sum[i]) h++; f[i]=f[q[h]]+A*M(sum[i]-sum[q[h]])+B*(sum[i]-sum[q[h]])+C; while (h<t&&xie(q[t],q[t-1])>xie(i,q[t])) t--; q[++t]=i; } printf("%lld",f[n]); return 0;}
2 1
- 斜率优化专题4——bzoj 1911: [Apio2010] 特别行动队 题解
- [斜率优化]BZOJ 1911—— [Apio2010]特别行动队
- [斜率DP优化]BZOJ 1911: [Apio2010]特别行动队 题解
- BZOJ 1911([Apio2010]特别行动队-斜率优化第一题)
- bzoj 1911 [Apio2010]特别行动队斜率优化+DP
- 【bzoj 1911】 [Apio2010]特别行动队(斜率优化dp)
- bzoj 1911: [Apio2010]特别行动队(斜率优化)
- bzoj 1911: [Apio2010]特别行动队 动态规划+斜率优化
- BZOJ 1911: [Apio2010]特别行动队(斜率优化)
- bzoj 1911 [Apio2010]特别行动队(斜率优化+DP)
- Bzoj 1911: [Apio2010]特别行动队(斜率优化)
- [BZOJ 1911][Apio2010]特别行动队:DP斜率优化
- BZOJ 1911 [Apio2010]特别行动队 (斜率优化DP)
- BZOJ 1911: [Apio2010]特别行动队 [斜率优化dp]
- 斜率优化——apio2010特别行动队
- 【斜率优化】BZOJ1911(Apio2010)[特别行动队]题解
- 【APIO2010】【斜率优化DP】特别行动队
- 【bzoj1911】【APIO2010】【特别行动队】【斜率优化】
- 利用freemarker、java生成html静态页面
- 编译型语言和解释型语言的区别和优劣
- 韩信点兵问题
- 狐狸
- C和C++动态内存分配和释放的区别
- 斜率优化专题4——bzoj 1911: [Apio2010] 特别行动队 题解
- ios的View的AutoresizingMask属性
- 理解傅立叶变换的本质——背景篇
- vim 颜色主题
- 软件在运行期,修改panel的位置与大小
- Ubuntu下bochs的安装配置-自己动手写操作系统环境搭建
- .net(C#)页面之间传递参数的几种方法
- 菜鸟问题:EditText有下划线显示,去除下划线
- scrum项目管理