【斜率优化】BZOJ1096-[ZJOI2007]仓库建设
【题目大意】
有n个工厂编号分别为1-n,第i个仓库库存量为p[i],距离第1个仓库的距离为x[i](x[1]=0)。在每一个工厂建立一个仓库费用为c[i],没有建立仓库的工厂只能往编号大于它的仓库运送,费用为每单位库存量单位距离费用为1。问最少的总费用?(建仓库费用+运送费用)
【思路】

注意一下凸包怎么维护...
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
using namespace std;
const int MAXN=+;
typedef long long ll;
int n,d[MAXN],c[MAXN];
ll psum[MAXN],pdsum[MAXN],f[MAXN],y[MAXN];
int que[MAXN]; double slop(int i,int j)
{
ll x1=psum[i];
ll x2=psum[j];
ll y1=f[i]+pdsum[i];
ll y2=f[j]+pdsum[j];
return(1.0*(y2-y1)/(x2-x1));
} void init()
{
scanf("%d",&n);
memset(psum,,sizeof(psum));
memset(pdsum,,sizeof(pdsum));
memset(f,,sizeof(f));
for (int i=;i<=n;i++)
{
int p;
scanf("%d%d%d",&d[i],&p,&c[i]);
psum[i]=psum[i-]+(ll)p;
pdsum[i]=pdsum[i-]+(ll)p*d[i];
}
} ll dp()
{
int head=,tail=;
for (int i=;i<=n;i++)
{
while (head+<tail && slop(que[head],que[head+])<=1.0*d[i]) head++;
int j=que[head];
f[i]=d[i]*psum[i]-pdsum[i]+c[i]+f[j]-d[i]*psum[j]+pdsum[j];
while (head+<tail && slop(que[tail-],i)<=slop(que[tail-],que[tail-])) tail--;
que[tail++]=i;
}
return(f[n]);
} int main()
{
init();
printf("%lld\n",dp());
return ;
}
【斜率优化】BZOJ1096-[ZJOI2007]仓库建设的更多相关文章
- BZOJ1096 ZJOI2007 仓库建设 【斜率优化DP】
BZOJ1096 ZJOI2007 仓库建设 Description L公司有N个工厂,由高到底分布在一座山上.如图所示,工厂1在山顶,工厂N在山脚.由于这座山处于高原内陆地区(干燥少雨),L公司一般 ...
- bzoj1096[ZJOI2007]仓库建设 斜率优化dp
1096: [ZJOI2007]仓库建设 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 5482 Solved: 2448[Submit][Stat ...
- BZOJ1096 [ZJOI2007]仓库建设(斜率优化)
题目背景 小B的班级数学学到多项式乘法了,于是小B给大家出了个问题:用编程序来解决多项式乘法的问题. 题目描述 L公司有N个工厂,由高到底分布在一座山上. 工厂1在山顶,工厂N在山脚. 由于这座山处于 ...
- BZOJ1096: [ZJOI2007]仓库建设(dp+斜率优化)
Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 5790 Solved: 2597[Submit][Status][Discuss] Descript ...
- [BZOJ1096] [ZJOI2007] 仓库建设 (斜率优化)
Description L公司有N个工厂,由高到底分布在一座山上.如图所示,工厂1在山顶,工厂N在山脚.由于这座山处于高原内陆地区(干燥少雨),L公司一般把产品直接堆放在露天,以节省费用.突然有一天, ...
- BZOJ1096 [ZJOI2007]仓库建设 动态规划 斜率优化
原文链接http://www.cnblogs.com/zhouzhendong/p/8696410.html 题目传送门 - BZOJ1096 题意 给定两个序列$a,b,X$,现在划分$a$序列. ...
- 2018.09.07 bzoj1096: [ZJOI2007]仓库建设(斜率优化dp)
传送门 斜率优化dp经典题. 令f[i]表示i这个地方修建仓库的最优值,那么答案就是f[n]. 用dis[i]表示i到1的距离,sump[i]表示1~i所有工厂的p之和,sum[i]表示1~i所有工厂 ...
- Bzoj1096 [ZJOI2007]仓库建设
Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4193 Solved: 1845 Description L公司有N个工厂,由高到底分布在一座山上. ...
- [BZOJ1096][ZJOI2007]仓库建设(斜率优化DP)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1096 分析: 假设1~10,如果在3 6 10建立仓库,那么当前建立仓库决策下的最优值 ...
- BZOJ1096 [ZJOI2007]仓库建设——斜率优化
方程: $\Large f(i)=min(f(j)+\sum\limits_{k=j+1}^{i}(x_i-x_k)*p_k)+c_i$ 显然这样的方程复杂度为$O(n^3)$极限爆炸,所以我们要换一 ...
随机推荐
- activity栈清空
http://blog.csdn.net/swjtuxu/article/details/26163737
- Linux内存 性能调优
内存是影响Linux性能的主要因素之一,内存资源的充足与否直接影响应用系统的使用性能. free命令:监控Linux内存使用状况. 由上图可知,空闲内存是free+buffers+cached=155 ...
- 使用vue开发webApp,安卓手机自带回退键的问题解决
首先,我先为大家说明,为什么我要写这篇随笔: 因为我们写的webapp,在安卓手机上,按一次回退键,就会退出app,回到桌面,而不是像原生app一样,会有一个提示,例如,“再按一次退出应用”的这种提示 ...
- js闭包,原型,作用域等再一次理解
要理解闭包,原型等,首先要理解作用域 作用域:就是函数在定义的时候创建的,用于寻找使用到的变量的值的一个索引,而他内部的规则是,把函数自身的本地变量放在最前面,把自身的父级函数中的变量放在其次,把再高 ...
- bzoj3223 文艺平衡树 codevs3303 翻转区间
splay模版题吧 只有区间翻转 至于为什么要把须翻转区间旋到根 因为查找一个区间可以先找出他左端点左边第一个点和右端点x右边第一个点y 然后将x旋到根节点 y旋到x的右儿子 这样x的右边的点就是所有 ...
- 网络流专题练习Day2
04/17 目前做了:题 由于目前六道都是1A感觉非常爽... BZOJ1412: [ZJOI2009]狼和羊的故事 “狼爱上羊啊爱的疯狂,谁让他们真爱了一场:狼爱上羊啊并不荒唐,他们说有爱就有方向 ...
- [BZOJ1441&BZOJ2257&BZOJ2299]裴蜀定理
裴蜀定理 对于整系数方程ax+by=m,设d =(a,b) 方程有整数解当且仅当d|m 这个定理实际上在之前学习拓展欧几里得解不定方程的时候就已经运用到 拓展到多元的方程一样适用 BZOJ1441 给 ...
- hdu 2112 HDU Today (最短路)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 题目大意:给出起点和终点,然后算出最短的路. 不过有好多细节要注意: (1)起始点和终止点相等的 ...
- Chrome浏览器跨域插件
Moesif Origin & CORS Changer 这个插件允许发送跨域请求,重写Request Origin 和 CORS headers. 解决Debug Javascript时候出 ...
- POJ3466(01背包变形)
Proud Merchants Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) ...