[BZOJ1010]HNOI2008玩具装箱|斜率优化DP
来源:互联网 发布:电信网络诈骗类型 编辑:程序博客网 时间:2024/05/16 19:14
第一次做这题的时候看的别人的博客,迷迷糊糊就过去了。。回来看发现不太懂,自己再学了学,理解得深了一点。。
我的笔记
别人的博客
#include<iostream>#include<cstdio>#include<memory.h>#include<cstdlib>#define ll long long#define q1 que[head]#define q2 que[head+1]#define t1 que[tail]#define t2 que[tail-1]using namespace std;int i,j,n,head,tail,c[50005],que[50005];ll dp[50005],f[50005],l,C;ll H(int i) {return (ll)f[i]*f[i]+2*f[i]*C+C*C;}ll G(int i) {return (ll)f[i]*f[i]-2*f[i]*C+dp[i];}ll get(int i){while (2*f[i]*(f[q2]-f[q1])>G(q2)-G(q1)&&tail-head>0) head++;return -2*f[q1]*f[i]+G(q1)+H(i);}void ins(int i){while (tail-head>0&&(G(i)-G(t1))*(f[t1]-f[t2])<(G(t1)-G(t2))*(f[i]-f[t1])) tail--;que[++tail]=i;}int main(){freopen("1010.in","r",stdin);scanf("%d%I64d",&n,&l);f[0]=dp[0]=0ll;C=-l-1;for (i=1;i<=n;i++){scanf("%d",&c[i]);f[i]=f[i-1]+(ll)c[i]+1;}head=tail=1;que[1]=0;que[++tail]=1;dp[1]=-2*f[0]*f[1]+G(0)+H(1);for (i=2;i<=n;i++){dp[i]=get(i);ins(i);}cout<<dp[n];}
0 0
- [BZOJ1010]HNOI2008玩具装箱|斜率优化DP
- bzoj1010: [HNOI2008]玩具装箱toy 斜率优化DP
- BZOJ1010 [HNOI2008]玩具装箱toy(斜率优化dp)
- 【DP+斜率优化】[HNOI2008][HYSBZ/BZOJ1010]玩具装箱toy
- 【bzoj1010】[HNOI2008]玩具装箱toy 斜率优化DP
- [BZOJ1010][HNOI2008]玩具装箱toy(斜率优化dp)
- 斜率优化dp专题 & BZOJ1010 HNOI2008 玩具装箱toy
- BZOJ1010: [HNOI2008]玩具装箱toy 斜率优化DP
- 【BZOJ1010】【HNOI2008】玩具装箱toy(dp+斜率优化)
- [bzoj1010][HNOI2008] 玩具装箱toy DP斜率优化
- 【斜率优化DP】BZOJ1010 [HNOI2008]玩具装箱toy
- bzoj1010 [HNOI2008]玩具装箱toy 斜率优化 DP
- bzoj1010 [HNOI2008]玩具装箱toy(斜率优化DP)
- bzoj1010[HNOI2008]玩具装箱toy 斜率优化dp
- BZOJ1010(HNOI2008)[玩具装箱toy]--斜率优化DP
- 【bzoj1010】【斜率优化】【HNOI2008】玩具装箱toy
- [HNOI2008][BZOJ1010] 玩具装箱toy - 斜率优化
- 【bzoj1010】【HNOI2008】【玩具装箱toy】【斜率优化】
- iOS帐号、证书之漫谈(四)—— 申请Apple ID,不绑定银行卡
- SVM 原理详解,通俗易懂
- POI操作Excel
- 第三节 Lookup 缓存 之 使用不高速缓存的查找或静态高速缓存
- Objective-C - 获取毫秒时间戳
- [BZOJ1010]HNOI2008玩具装箱|斜率优化DP
- 设计模式:2)策略设计模式
- 从“hello”开始去分析linux下的socket编程
- 深圳医院3D打印钛合金假体置换患者肩胛骨
- sqlite如何避免重复建表(获取已经存在的表)
- js中变量和jsp中java代码中变量互相访问解决方案
- 深入理解Python 装饰器(decorator)
- 排序
- 从小到大排序2