【题目大意】

有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 ;
}

最新文章

  1. TNS-12502: TNS:listener received no CONNECT_DATA from client
  2. listview 模仿用户点击事件。
  3. 【leetcode】Reverse Linked List II
  4. perl在命令行中打印单引号
  5. 全局函数VS成员函数
  6. MongoDB国内学术研究(部分)
  7. IMAP收邮件
  8. Tinymce4 中Ajax多次加载时,会出现菜单在第二次进入时,显示的下拉菜单在左上角
  9. java同时连接db2和mysql的程序
  10. spawn-fcgi运行fcgiwrap
  11. Linux-C-Program:makefile
  12. css去掉a标签点击后的虚线框,outline,this.blur()
  13. bzoj1179: [Apio2009]Atm scc缩点+dag上dp
  14. c配置库ccl使用小结
  15. laravel构造函数跳转失败
  16. perl学习笔记——字符串和排序
  17. 【bzoj3561】DZY Loves Math VI 莫比乌斯反演
  18. react 基础语法复习2- react入门以及JSX
  19. jsp学习与提高(一)——JSP生命周期、三大指令及动作
  20. luogu P2852 [USACO06DEC]牛奶模式Milk Patterns 后缀数组 + Height数组 + 二分答案 + 扫描

热门文章

  1. ansible 批量修改root密码
  2. hadoop 架构
  3. 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
  4. hibernate连接mysql,自动建表失败
  5. 面向对象的tab选项卡实现
  6. js+json实现ajax实例
  7. javascript实现瀑布流效果(固定宽度)
  8. python3 面向对象补充
  9. 转:Python网页解析:BeautifulSoup vs lxml.html
  10. linux下命令源码