【斜率优化】BZOJ1096-[ZJOI2007]仓库建设
2024-09-21 22:38:02
【题目大意】
有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 ;
}
最新文章
- TNS-12502: TNS:listener received no CONNECT_DATA from client
- listview 模仿用户点击事件。
- 【leetcode】Reverse Linked List II
- perl在命令行中打印单引号
- 全局函数VS成员函数
- MongoDB国内学术研究(部分)
- IMAP收邮件
- Tinymce4 中Ajax多次加载时,会出现菜单在第二次进入时,显示的下拉菜单在左上角
- java同时连接db2和mysql的程序
- spawn-fcgi运行fcgiwrap
- Linux-C-Program:makefile
- css去掉a标签点击后的虚线框,outline,this.blur()
- bzoj1179: [Apio2009]Atm scc缩点+dag上dp
- c配置库ccl使用小结
- laravel构造函数跳转失败
- perl学习笔记——字符串和排序
- 【bzoj3561】DZY Loves Math VI 莫比乌斯反演
- react 基础语法复习2- react入门以及JSX
- jsp学习与提高(一)——JSP生命周期、三大指令及动作
- luogu P2852 [USACO06DEC]牛奶模式Milk Patterns 后缀数组 + Height数组 + 二分答案 + 扫描
热门文章
- ansible 批量修改root密码
- hadoop 架构
- org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.oskyhang.gbd.service.UserService] found for dependency: expected at least 1 bean which qualifies as aut
- hibernate连接mysql,自动建表失败
- 面向对象的tab选项卡实现
- js+json实现ajax实例
- javascript实现瀑布流效果(固定宽度)
- python3 面向对象补充
- 转:Python网页解析:BeautifulSoup vs lxml.html
- linux下命令源码