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(i)-s(j)-L-1)^2<f(k)+(s(i)-s(k)-L-1)^2$
展开可以化简成$\large (f(j)-f(k)+s(j)^2-s(k)^2)/(2*(s(j)-s(k)))<=s(i)-L-1$
这样我们就可以用斜率优化了
设点$i$的坐标为$(f(i)+s(i)^2,2*s(i))$,维护一个下凸壳即可
代码
#include<cstdio>
#define maxn 50005
#define LL long long
int n,l,S,T,q[maxn];
LL f[maxn],s[maxn];
double calc(int a,int b){
return (f[a]-f[b]+s[a]*s[a]-s[b]*s[b])/(2.0*(s[a]-s[b]));
}
void insert(int x){
while(S<T-&&calc(x,q[T-])<=calc(q[T-],q[T-]))T--;
q[T++]=x;
}
int main(){
scanf("%d%d",&n,&l);l++;
for(int i=;i<=n;i++){
scanf("%d",s+i);
s[i]+=s[i-]+;
}
T++;
for(int i=;i<=n;i++){
while(S<T-&&calc(q[S+],q[S])<=s[i]-l)S++;
int x=q[S];
f[i]=f[x]+(s[i]-s[x]-l)*(s[i]-s[x]-l);
insert(i);
}
printf("%lld\n",f[n]);
return ;
}
bzoj1010: [HNOI2008]玩具装箱toy——斜率优化的更多相关文章
- bzoj1010[HNOI2008]玩具装箱toy 斜率优化dp
1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 11893 Solved: 5061[Submit][S ...
- [BZOJ1010] [HNOI2008] 玩具装箱toy (斜率优化)
Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1... ...
- BZOJ 1010: [HNOI2008]玩具装箱toy 斜率优化DP
1010: [HNOI2008]玩具装箱toy Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再 ...
- Bzoj 1010: [HNOI2008]玩具装箱toy(斜率优化)
1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec Memory Limit: 162 MB Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定 ...
- [bzoj1010][HNOI2008]玩具装箱toy_斜率优化dp
玩具装箱toy bzoj-1010 HNOI-2008 题目大意:P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一 ...
- 【bzoj1010】[HNOI2008]玩具装箱toy 斜率优化dp
题目描述 P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1...N的N件玩具, ...
- [luogu3195 HNOI2008] 玩具装箱TOY (斜率优化dp)
题目描述 P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1...N的N件玩具, ...
- P3195 [HNOI2008]玩具装箱TOY 斜率优化dp
传送门:https://www.luogu.org/problem/P3195 题目描述 P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任 ...
- 洛谷P3195 [HNOI2008]玩具装箱TOY——斜率优化DP
题目:https://www.luogu.org/problemnew/show/P3195 第一次用斜率优化...其实还是有点云里雾里的: 网上的题解都很详细,我的理解就是通过把式子变形,假定一个最 ...
随机推荐
- csp-s模拟测试99
csp-s模拟测试99 九九归一直接爆炸. $T1$一眼板子. $T2$一眼语文题(语文的唯一一次$120+$是给模拟出来的可知我的语文能力). $T3$一眼普及题. ?? Hours Later 板 ...
- [转] boost undefined reference to 'pthread_create 问题
由于是Linux新手,所以现在才开始接触线程编程,照着GUN/Linux编程指南中的一个例子输入编译,结果出现如下错误:undefined reference to 'pthread_create'u ...
- JVM内核-原理、诊断与优化学习笔记(三):常用JVM配置参数
文章目录 Trace跟踪参数 -verbose:gc (打开gc的跟踪情况) -XX:+printGC(打开gc的log开关,如果在运行的过程中出现了gc,就会打印出相关的信息.) -XX:+Prin ...
- C不同变量类型存储大小引发的BUG
#include"stdio.h" typedef signed char int8; typedef unsigned char uint8; typedef signed sh ...
- ECMAScript1.2 表达式|语句|break|continue
表达式 一个表达式可以产生一个值,有可能是运算,函数调用, 有可能是字面量,表达式可以放在任何需要值的地方. 语句 语句可以理解为一个行为,循环语句和判断语句就是典型的语句. 一个程序有很多个语句组成 ...
- Spring Cloud Eureka 注册安全一定要做到位!
/eureka/ 参考配置如下: defaultZone: http://javastack:javastack@eureka1:8761/eureka/, http://javastack:java ...
- List<VO>转成List<Map>
List<A01090021BatchAddCheckVO> list = (ArrayList<A01090021BatchAddCheckVO>) result.get(& ...
- Centos6 安装完之后,没有网络
Virtualbox安装的centos 6.10的虚拟机,安装时,网络是NAT网络,安装完之后,将网络改为桥接网卡,启动虚拟机之后,使用 ifconfig 命令查看没有到eth0的信息,只有127.0 ...
- log4j2 按日期分割,自动清理历史文件
方式一:定义CronTriggeringPolicy <?xml version="1.0" encoding="UTF-8"?> <Conf ...
- Idea jsp页面乱码
jsp页面中添加 <%@ page language="java" contentType="text/html; charset=utf-8" page ...