【动态规划16】bzoj1911 [Apio2010]特别行动队(斜率优化)
来源:互联网 发布:python scala 编辑:程序博客网 时间:2024/05/08 16:53
鸽了好多天啊..
题目描述
输入输出格式
显然的斜率优化问题
O(n^2)的动规方程很显然
设
即
随便消一消,搞一搞
然后移个项
之后就与http://blog.csdn.net/flanoc/article/details/73190005一样了(骗个点击量)
#include<bits/stdc++.h>#define fer(i,j,n) for(int i=j;i<=n;i++)#define far(i,j,n) for(int i=j;i>=n;i--)#define ll long longconst int maxn=1000010;const int INF=1e9+7;using namespace std;/*----------------------------------------------------------------------------*/inline ll read(){ char ls;ll x=0,sng=1; for(;ls<'0'||ls>'9';ls=getchar())if(ls=='-')sng=-1; for(;ls>='0'&&ls<='9';ls=getchar())x=x*10+ls-'0'; return x*sng;}/*----------------------------------------------------------------------------*/ll n,a,b,c;ll pre[maxn],f[maxn];ll q[maxn],h,t;ll calcK(int j,int k){ return (f[j]-f[k]+a*(pre[j]*pre[j]-pre[k]*pre[k])+b*(pre[k]-pre[j]))/(2*a*(pre[j]-pre[k]));}int main(){ n=read(); a=read();b=read();c=read(); fer(i,1,n) pre[i]=read()+pre[i-1]; h=t=0; fer(i,1,n) { while(h<t&&calcK(q[h],q[h+1])<pre[i])h++; f[i]=f[q[h]]+a*(pre[i]-pre[q[h]])*(pre[i]-pre[q[h]])+b*(pre[i]-pre[q[h]])+c; while(h<t&&calcK(q[t-1],q[t])>calcK(q[t],i))t--; q[++t]=i; } cout<<f[n];}
阅读全文
0 0
- 【动态规划16】bzoj1911 [Apio2010]特别行动队(斜率优化)
- 【bzoj1911】【APIO2010】【特别行动队】【斜率优化】
- BZOJ1911 [Apio2010]特别行动队 斜率优化
- bzoj1911 [Apio2010]特别行动队(斜率优化)
- BZOJ1911 [Apio2010]特别行动队 【斜率优化】
- [BZOJ1911][Apio2010]特别行动队(斜率优化dp)
- bzoj1911: [Apio2010]特别行动队(斜率优化+Dp)
- bzoj1911 特别行动队 动态规划斜率优化
- bzoj1911: [Apio2010]特别行动队 斜率优化DP
- [BZOJ1911]APIO2010特别行动队|斜率优化DP
- 【bzoj1911】[Apio2010]特别行动队 DP斜率优化
- 【斜率优化】BZOJ1911(Apio2010)[特别行动队]题解
- 【斜率优化DP】BZOJ1911 [Apio2010]特别行动队
- bzoj 1911: [Apio2010]特别行动队 动态规划+斜率优化
- 【BZOJ1911】【Apio2010】特别行动队,斜率优化DP裸题(斜率有单调性)
- apio2010特别行动队(斜率优化)
- [BZOJ1010][HNOI2008]玩具装箱[BZOJ1911][APIO2010]特别行动队[BZOJ1492][NOI2007]货币兑换 斜率优化
- bzoj1911 特别行动队 斜率优化
- SMW0 HTML模版的形式上传文件 维护MIME类型
- laravel新建应用报错:The Process class relies on proc_open, which is not
- 无法找到“ugraf.exe”的调试信息
- web服务程序设计探索(2)——插件模型
- 换装Sprite
- 【动态规划16】bzoj1911 [Apio2010]特别行动队(斜率优化)
- thread54
- SDUT-2737 小鑫の日常系列故事(六)——奇遇记
- [leetCode刷题笔记]347. Top K Frequent Elements
- 只有一个form表单,实现多个提交按钮
- ViewPager之PageTransformer接口
- Pyunit源码笔记之十一 testCase run之后的 各种result
- linux下top命令详解
- Android Studio2.0的逆天功能Instant Run