bzoj1010[HNOI2008]玩具装箱toy 斜率优化dp
1010: [HNOI2008]玩具装箱toy
Time Limit: 1 Sec Memory Limit: 162 MB
Submit: 11893 Solved: 5061
[Submit][Status][Discuss]
Description
P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压
缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中。P教授有编号为1...N的N件玩具,第i件玩具经过
压缩后变成一维长度为Ci.为了方便整理,P教授要求在一个一维容器中的玩具编号是连续的。同时如果一个一维容
器中有多个玩具,那么两件玩具之间要加入一个单位长度的填充物,形式地说如果将第i件玩具到第j个玩具放到一
个容器中,那么容器的长度将为 x=j-i+Sigma(Ck) i<=K<=j 制作容器的费用与容器的长度有关,根据教授研究,
如果容器长度为x,其制作费用为(X-L)^2.其中L是一个常量。P教授不关心容器的数目,他可以制作出任意长度的容
器,甚至超过L。但他希望费用最小.
Input
第一行输入两个整数N,L.接下来N行输入Ci.1<=N<=50000,1<=L,Ci<=10^7
Output
输出最小费用
Sample Input
3
4
2
1
4
Sample Output
HINT
Source
斜率优化dp入门题目 推式子还是有点麻烦
黄学长的推法比较简单 用换元法来推 http://hzwer.com/2114.html
1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring> 4 #include<queue> 5 #include<cmath> 6 #include<vector> 7 #include<cstdlib> 8 #include<iostream> 9 #define ll long long 10 #define inf 2147483647 11 #define N 50005 12 using namespace std; 13 int q[N],h,t,n,a[N],L; 14 ll sum[N],f[N],dp[N]; 15 16 ll G(int j,int k){ 17 return dp[j]-dp[k]+(f[j]+L)*(f[j]+L)-(f[k]+L)*(f[k]+L); 18 } 19 20 ll S(int j,int k){ 21 return 2*(f[j]-f[k]); 22 } 23 int main(){ 24 scanf("%d%d",&n,&L);L++; 25 for(int i=1;i<=n;i++){ 26 scanf("%d",&a[i]); 27 sum[i]=sum[i-1]+a[i]; 28 f[i]=sum[i]+i; 29 } 30 h=1;t=2;q[1]=0; 31 for(int i=1;i<=n;i++){ 32 while(h+1<t&&G(q[h+1],q[h])<=S(q[h+1],q[h])*f[i])h++;//<=可换为< 33 dp[i]=dp[q[h]]+(f[i]-f[q[h]]-L)*(f[i]-f[q[h]]-L); 34 while(h+1<t&&G(i,q[t-1])*S(q[t-1],q[t-2])<=G(q[t-1],q[t-2])*S(i,q[t-1]))t--;//<=可换为< 35 q[t++]=i; 36 } 37 printf("%lld",dp[n]); 38 return 0; 39 }
转载于:https://www.cnblogs.com/wsy01/p/8119732.html
bzoj1010[HNOI2008]玩具装箱toy 斜率优化dp相关推荐
- BZOJ1010:[HNOI2008]玩具装箱TOY(斜率优化DP)
Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压 缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1.. ...
- 【bzoj1010】玩具装箱toy——斜率优化dp
题目链接 第一道自己推的斜率优化dp>< 首先要明确一点:装进同一个容器的toys一定要是连着的几个(否则的话可以直接贪心)-->之前理解错题意WA了一次...... 用sum[i] ...
- BZOJ 1010: [HNOI2008]玩具装箱toy 斜率优化dp
Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1... ...
- [Bzoj1010][HNOI2008]玩具装箱toy(斜率优化)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1010 首先预处理前缀和sum[i],然后推出初始的dp方程,dp[i]表示装前i件物品的 ...
- 洛谷P3195 [HNOI2008]玩具装箱TOY——斜率优化DP
题目:https://www.luogu.org/problemnew/show/P3195 第一次用斜率优化...其实还是有点云里雾里的: 网上的题解都很详细,我的理解就是通过把式子变形,假定一个最 ...
- 『玩具装箱TOY 斜率优化DP』
玩具装箱TOY(HNOI2008) Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊 ...
- P3195 [HNOI2008]玩具装箱TOY(斜率优化)
题目描述 P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为 1\cdots N1 ...
- 【BZOJ1010】【codevs1319】玩具装箱,斜率优化DP
传送门1 传送门2 写在前面:好像double要比long long快? 思路:想拿来练手的斜率优化DP,却忘记了一些基本原则,好坑 基本的DP转移 f[i]=min(f[j]+(sum[i]−sum ...
- YBTOJ洛谷P3195:玩具装箱(斜率优化dp)
传送门 文章目录 前言 解析 代码 前言 斜率优化dp,就是利用斜率优化的dp (逃) 解析 第一道斜优的题 分析题目 设sumisum_isumi为1-i的c的前缀和 容易写出dp转移式: dpi ...
最新文章
- IntelliJ Idea 2020.1 正式发布,官方支持中文了
- java json的使用,java中json的使用
- ajax省市联动案例,AJAX案例四:省市联动(示例代码)
- PHP前端和数据库的连接
- 面试题37:两个链表的第一个公共结点
- 无法加载主类的10中方法
- 手写体识别(数据挖掘入门与实践-实验11)
- Mac 安装redis
- 隐层元素闪一下_太阳一直依靠什么元素在燃烧,地球上的重元素又是怎么来的?...
- IntelliJ IDEA 2020 数据库连接Oracle和Mysql
- 陕西西咸新区沣西新城大数据产业发展思考
- vc6.0垃圾文件清理工具_C盘空间逐渐被垃圾文件填满,详细清理方法介绍
- 大一计算机word排版试题,Word排版练习题
- adb指令禁用软件_免Root使用ADB命令_停用手机系统应用
- 计算机网络vtp,VTP学习笔记(二)
- 由浅入深玩转华为WLAN—12安全认证配置(5)Portal认证,外置Protal服务器TSM对接
- 获得旅行青蛙无限三叶草方法及apk
- 计算机家庭组无法访问,Win7共享文件夹无法访问解决方法
- Acwing春季每日一题 混合牛奶(朴素做法和优化做法)
- 国际短信有哪些用途?
热门文章
- 收藏 | 使用合成数据集做目标检测
- 张量网络机器学习:最近的进展和前沿,109页ppt
- YOLOv4改进版重磅问世!Yolov4原班人马重磅推出Scaled-YOLOv4!业界最佳
- 总结 | 深度学习PyTorch神经网络箱使用
- js和ajax点赞功能代码_FANUC数控机床:你会用“M代码”调用“系统程式”吗
- 对!这就是你要的pandas练习题(❤️❤️)
- 这就是数据分析之Pandas与数据清洗
- 为什么神经网络用python而不用c语言_python是用C实现的,Java是用C++实现的,那为什么不直接用C或C++呢?...
- android tcp socket框架_花了一个星期,我终于把RPC框架整明白了
- 看别人情侣空间显示服务器繁忙什么意思,调查13000位80后年轻人,他们的感情状态究竟如何?...