博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jzoj3169 生产汽车
阅读量:5332 次
发布时间:2019-06-14

本文共 1493 字,大约阅读时间需要 4 分钟。

如前面提到,ABC的汽车工厂有N个工人,他们在一个传送带上生产汽车,工人从左到右排列,编号依次为1到N,采用流水线模式,每个人负责自己的一部分工作。

生产一台汽车需要从1号工人开始,当1号完成他的工作后,2号就会开始工作,然后是3号,最后当N号工人完成他的工作后,整个汽车生产完毕。工人们一共需要生产M台汽车,而且必须按照从1到M的顺序去生产。

对于工人i,他完成自己的工作需要Ti的时间,而对于汽车j,组装复杂度为Fj。那么工人i花在汽车j上的时间为Ti*Fj。

当某个工人完成他的工作后,他会同时把汽车交给下一个工人,没有任何时间上的延迟,因此,要保证下一个要接受汽车的工人必须是空闲的。为了满足这个要求,ABC需要为每一台汽车选择一个好时机开始制造。

ABC想知道生产完所有汽车最少需要多少时间。

先来考虑O(n^2)的情况

我们令g[i]表示第i辆汽车开始生产的时间,g[1]=0

那么g[i]=g[i-1]+max(f[i-1]*sum[j]+f[i]*sum[j-1]) 其中sum[j]=Σt[k] (1<=k<=j)

这里表示每一个人都必须在它生产完i-1这辆车之后才能继续第i辆,看到这个式子我们可以考虑斜率优化

对于决策j,k若k优于j那么就有

f[i-1]*s[j]+f[i]*s[j-1]<f[i-1]*s[k]+f[i]*s[k-1]

f[i-1]*(s[j]-s[k])<f[i]*(s[j-1]-s[k-1])

f[i-1]/f[i]<(s[j-1]-s[k-1])/(s[j]-s[k])

因为f[i-1]/f[i]不单调,所以我们维护一个斜率单调递减的上凸壳,让后在上面二分

#pragma GCC opitmize("O3")#pragma G++ opitmize("O3")#include
#include
#include
#define N 100010using namespace std;int n,m,q[N],t=0;long long f[N],s[N],g[N];inline double slp(int i,int j){ return (s[i]-s[j])/(double)(s[i-1]-s[j-1]);}int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;++i) scanf("%lld",s+i),s[i]+=s[i-1]; for(int i=1;i<=m;++i) scanf("%lld",f+i); for(int i=1;i<=n;++i){ for(;t>1&&slp(i,q[t])>slp(q[t],q[t-1]);--t); q[++t]=i; } g[1]=0; for(int i=2,l,r,M;i<=m;++i){ l=0; r=t; for(double k=f[i]/(double)f[i-1];l
>1; if(slp(q[M+1],q[M])>k) l=M+1; else r=M; } g[i]=g[i-1]+s[q[l]]*f[i-1]-s[q[l]-1]*f[i]; } printf("%lld\n",1ll*g[m]+s[n]*f[m]);}

转载于:https://www.cnblogs.com/Extended-Ash/p/9477158.html

你可能感兴趣的文章
并发编程之队列
查看>>
Android上解析Json格式数据
查看>>
mysql的相关命令整理
查看>>
hdu5909 Tree Cutting 【树形dp + FWT】
查看>>
欧拉项目第四题之三位数之积数的最大回数
查看>>
Codeforces Round #482 (Div. 2) B、Treasure Hunt(模拟+贪心)979B
查看>>
overflow :scroll在IOS上很卡的解决方案
查看>>
Oracle EBS INV 释放保留
查看>>
java 中函数的参数传递详细介绍
查看>>
本人的cocos2d-x之路
查看>>
HTTP报文
查看>>
MySQL教程及经常使用命令1.1
查看>>
jQuery Ajax: $.post请求示例
查看>>
Java - 面向对象(object oriented)计划 详细解释
查看>>
尝到awk
查看>>
poj 1556 zoj1721 BellmanFord 最短路+推断直线相交
查看>>
linux awk命令详细使用方法
查看>>
C#异步调用
查看>>
古训《增广贤文》
查看>>
Safety Interval Upper/Lower Limit of a Delta Selection(2)
查看>>