洛谷3195(HNOI2008)玩具装箱
题目:https://www.luogu.org/problemnew/show/P3195
自己做斜率优化的第一道题。
推成斜率优化的样子很重要。
斜率优化的样子就是从 j 中求 i 的话,关系式里一个量只和 i 有关,一个量只和 j 有关,一个量同时和 i 与 j 有关。
这时可以把那个 同时和 i 与 j 有关的量 里的和 j 有关的量看成 x[ j ],把只和 j 有关的量看成 y[ j ],然后只和 i 有关的量就是截距、x[ j ]前面的就是式子里的斜率。
(为了推出这样的式子,可以设a,b等等,帮助自己推。大体思路是将与 i 或 j 或 i 和 j 有关的东西看成一个整体)
推出式子以后,找合适的 j 就是 j - 1 与 j 的斜率比式子里的斜率大(或小),而 j 与 j + 1 的斜率比式子里的斜率小(或大)的那个 j 。
找到 j 以后把式子变变形就得到推出dp[ i ] 的式子了。
可用单调队列。
把a什么的写成函数很方便。
#include<iostream> #include<cstdio> #include<cstring> #define ll long long #define db double using namespace std; const int N=50005; int n,L,h=1,t=1,q[N]; ll s[N],dp[N]; db a(int i){return s[i]+i;} db b(int i){return s[i]+i+L+1;} db x(int i){return b(i);} db y(int i){return b(i)*b(i)+dp[i];} db slope(int j,int i){return (y(i)-y(j))/(x(i)-x(j));} int main() {scanf("%d%d",&n,&L);ll z;for(int i=1;i<=n;i++){scanf("%lld",&z);s[i]=s[i-1]+z;}for(int i=1;i<=n;i++){while(h<t&&slope(q[h],q[h+1])<2*a(i))h++;dp[i]=(a(i)-b(q[h]))*(a(i)-b(q[h]))+dp[q[h]];while(t>h&&slope(q[t-1],q[t])>slope(q[t-1],i))t--;q[++t]=i;}printf("%lld",dp[n]);return 0; }
转载于:https://www.cnblogs.com/Narh/p/9139814.html
洛谷3195(HNOI2008)玩具装箱相关推荐
- 洛谷 P3195 [HNOI2008]玩具装箱 —— 斜率优化
This way 题意: 题解: 洛谷的题解就写的蛮好,首先对于斜率优化,先将它的转移方程写出来,然后对于只包含i的设为A,只包含j的设为B,然后对于含有A和B的项就是二元一次方程中的k和x 这个就可 ...
- 洛谷P3195 [HNOI2008]玩具装箱TOY
题目:https://www.luogu.org/problemnew/show/P3195 题目描述 P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压 ...
- 洛谷P3195 [HNOI2008]玩具装箱TOY(单调队列优化DP)
题目描述 P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1...N的N件玩具, ...
- 洛谷P3195 [HNOI2008]玩具装箱TOY——斜率优化DP
题目:https://www.luogu.org/problemnew/show/P3195 第一次用斜率优化...其实还是有点云里雾里的: 网上的题解都很详细,我的理解就是通过把式子变形,假定一个最 ...
- YBTOJ洛谷P3195:玩具装箱(斜率优化dp)
传送门 文章目录 前言 解析 代码 前言 斜率优化dp,就是利用斜率优化的dp (逃) 解析 第一道斜优的题 分析题目 设sumisum_isumi为1-i的c的前缀和 容易写出dp转移式: dpi ...
- [HNOI2008]玩具装箱toy
1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec Memory Limit: 162 MB Submit: 10286 Solved: 4215 [Submit] ...
- bzoj 1010: [HNOI2008]玩具装箱toy 2011-12-27
1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec Memory Limit: 162 MB Submit: 2254 Solved: 744 [Submit][S ...
- 1010 [HNOI2008]玩具装箱toy
1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec Memory Limit: 162 MB Description P教授要去看奥运,但是他舍不下他的玩具,于是他决 ...
- P3195 [HNOI2008]玩具装箱TOY
P3195 [HNOI2008]玩具装箱TOY 题目描述 P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的 ...
最新文章
- 数据结构与算法:算法简介
- ios 打开评论界面
- python装饰器之函数作用域
- [每日一题] OCP1z0-047 :2013-07-14 正则表达式
- Stm32:半主机模式
- 不要让Javascript的等价表格看上去那么难看
- 一文看懂:边缘计算究竟是什么?为何潜力无限?(上)
- 统信系统安装京瓷打印机驱动步骤 针对京瓷系列复合机的UOS操作系统用户使用说明
- 力天创见客流统计标书制作
- 用Java代码实现区块链技术
- 使用Git上传项目到Gitgub
- 【详细】华为云免费SSL证书申请步骤
- 宽松委托转换(Relaxed delegate conversion)
- IAP固件升级原理及实现详解
- 软件测试的原则和经验
- 2017-11-20 白银解说
- 学术捜索新添找寻新近文章功能
- 39. 组合总和(Python)
- 使用ssh正向连接、反向连接、做socks代理的方法
- 各大搜索引擎爬虫UA
热门文章
- ×××梦 最近要开始研究Excel 2010
- SVN、Apache和AD LDS的集成
- 《财富》:盖茨的四项黄金法则
- caffe硬件条件配置选择+LeNet识别MNIST(第四章读书笔记)
- Types cannot be provided in put mapping requests, unless the include_type_name parameter is set to t
- 常见的14种异常心电图的波形特点
- Backbone发展与语义分割网络发展
- AttributeError: 'Model' object has no attribute 'target_tensors'
- 机器学习:正则化原理总结
- 《机器学习》 周志华学习笔记第一章 绪论(课后习题)