dsy1010: [HNOI2008]玩具装箱

【题目描述】

有n个数,分成连续的若干段,每段(假设从第j个到第i个组成一段)的分数为 (X-L)^2,X为j-i+Sigma(Ck) i<=k<=j,其中L是一个常量。目标:各段分数的总和最小。

【输入格式】

第一行:两个整数N,L.下来N个数字Ci.1<=N<=50000,1<=L,Ci<=10^7

【输出格式】

一个整数,各段分数总和的值最小。

Sample Input

5 4

3 4 2 1 4

Sample Output

1

维护一个右下凸包。

 #include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std; typedef long long LL;
const LL N=;
LL n,L,NL,f[N],sum[N],s[N],Q[N]; // f[i]=a[i]*x[j]+b[j]
// LL=L+1
// a[i]=-2*(s[i]-LL)
// x[j]=s[j]
// b[j]=f[j]+s[j]^2 double X(LL i){return s[i];}
double Y(LL i){return f[i]+s[i]*s[i];}
double find_k(LL i,LL j){return (Y(j)-Y(i))/(X(j)-X(i));} int main()
{
// freopen("a.in","r",stdin);
freopen("toy.in","r",stdin);
freopen("toy.out","w",stdout);
scanf("%lld%lld",&n,&L);
sum[]=;s[]=;NL=L+;
for(int i=;i<=n;i++)
{
LL x;
scanf("%lld",&x);
sum[i]=sum[i-]+x;
}
for(int i=;i<=n;i++) s[i]=sum[i]+i;
// for(LL i=1;i<=n;i++) printf("%d ",sum[i]);printf("\n");
// for(LL i=1;i<=n;i++) printf("%d ",s[i]);printf("\n");
LL l=,r=,j,ai,xj,bj,ti;
double k;
memset(f,,sizeof(f));
for(int i=;i<=n;i++)
{
ai=(-)*(s[i]-NL);
while(l<r && find_k(Q[l],Q[l+])<=(-ai) ) l++;
j=Q[l];
xj=s[j];
bj=f[j]+s[j]*s[j];
ti=(s[i]-NL)*(s[i]-NL);
f[i]=ai*xj+bj+ti;
while(l<r && find_k(Q[r],Q[r-])>find_k(i,Q[r])) r--;
Q[++r]=i;
}
printf("%lld\n",f[n]);
return ;
}

【bzoj1010-toy】斜率优化入门模板的更多相关文章

  1. 斜率优化入门学习+总结 Apio2011特别行动队&Apio2014序列分割&HZOI2008玩具装箱&ZJOI2007仓库建设&小P的牧场&防御准备&Sdoi2016征途

    斜率优化: 额...这是篇7个题的题解... 首先说说斜率优化是个啥,额... f[i]=min(f[j]+xxxx(i,j)) ;   1<=j<i (O(n^2)暴力)这样一个式子,首 ...

  2. bzoj1010[HNOI2008]玩具装箱toy 斜率优化dp

    1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 11893  Solved: 5061[Submit][S ...

  3. 【bzoj1010】[HNOI2008]玩具装箱toy 斜率优化dp

    题目描述 P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1...N的N件玩具, ...

  4. 【BZOJ1010】【HNOI2008】玩具装箱toy (斜率优化DP) 解题报告

    题目: 题目在这里 思路与做法: 这题不难想. 首先我们先推出一个普通的dp方程: \(f_i = min \{ f_j+(i-j-1+sum_i-sum_j-L)^2\}\) 然后就推一推式子了: ...

  5. bzoj1010: [HNOI2008]玩具装箱toy——斜率优化

    方程 $\Large f(i)=min(f(j)+(s(i)-s(j)-1-L)^2)$ 其中$s(i)$为i的前缀和再加上$i$ 对于某个$i$若$j$比$k$优,则 $\large f(j)+(s ...

  6. BZOJ 1010: [HNOI2008]玩具装箱toy 斜率优化DP

    1010: [HNOI2008]玩具装箱toy Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再 ...

  7. 『玩具装箱TOY 斜率优化DP』

    玩具装箱TOY(HNOI2008) Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊 ...

  8. hdu3507 Print Article(斜率优化入门)(pascal)

    Problem Description Zero has an old printer that doesn't work well sometimes. As it is antique, he s ...

  9. Bzoj 1010: [HNOI2008]玩具装箱toy(斜率优化)

    1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec Memory Limit: 162 MB Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定 ...

随机推荐

  1. c++ constructor, copy constructor, operator =

    // list::push_back #include <iostream> #include <list> class element{ private: int numbe ...

  2. Android Google Maps 监听地图缩放

    接上篇.http://www.cnblogs.com/maomishen/p/3556297.html 由于公司项目要求,需要对google map监听地图的缩放(zoom)来进行一些操作. 但是在网 ...

  3. iOS笔记054 - 核心动画

    注意事项 :locationInView和translationInView // 返回相对于控件自身内部触摸点的位置 [pan locationInView:self]; // 返回两个触摸点之间的 ...

  4. 「暑期训练」「Brute Force」 Far Relative’s Problem (CFR343D2B)

    题意 之后补 分析 我哭了,强行增加自己的思考复杂度...明明一道尬写的题- -(往区间贪心方向想了 其实完全没必要,注意到只有366天,直接穷举判断即可. 代码 #include <bits/ ...

  5. Selenium LoadableComponent加载组件

    继承LoadableComponent类可以在打开地址时, 判断浏览器是否打开了预期的网址, 需要重写load()与isLoad()方法: 即使没有定义get()方法, 也可以进行get()方法的调用 ...

  6. JavaScript - arguments object

    The arguments object is an Array-like object corresponding to the arguments passed to a function. fu ...

  7. A1

    It’s surprising what you can find at the end of your garden. Wild flowers... and even smaller yet, i ...

  8. J2EE开发实战基础系列之开卷有益

    2014.10.24[致歉]{抱歉,从7.4号接到朋友的请求,一直忙到现在,最近又有新的CASE要忙,很抱歉教程要延误,开课时间请大家关注Q群} 时隔七年再次接触培训有关的事情,是兴奋,更多的是恐惧, ...

  9. [剑指Offer] 34.第一个只出现一次的数

    题目描述 在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符,并返回它的位置 [思路]当一个字符第一次出现的位置和它最后一次出现的位置相同,那么 ...

  10. 前端工程师必须要知道的SEO技巧(2):制作比设计还要漂亮的代码(内容和语义化代码)实现下

    提醒自己:上一篇文章属于纯理论的文章,我自己有的部分之从网上摘抄的,我自己也是不理解的.或许过一段日子我就能全明白了.我自己还是喜欢实战,做几个例子就明白了. 怎么做让自己网页的标签来实现语义化,我直 ...