本题可以模拟每个工件依次通过所有加工阶段的过程,直接计算出每个工件完成全部阶段的时间,最后取最大值即可。
由于阶段内的机器可以并行加工,每个工件在进入某阶段时,需要在该阶段的一台机器上加工,只需选择该阶段中最早空闲的机器即可。
具体算法如下:
cur_time 记录每个工件当前累积的加工时间,初始全为 0(表示到达第 1 个阶段前的状态)。某智能工厂需要加工 n 个相同的工作。加工过程包含 k 个阶段,必须按编号 1 到 k 的顺序依次进行。
第 i 个阶段配备了 ci 台相同的自动化机器,因此同一时刻最多可以有 ci 个工作在该阶段被同时加工。每个工作在阶段 i 的单件加工时间为 ti。
初始时刻所有机器均空闲,任何机器完成一个工作后可立即开始加工下一个到达该阶段的工作。请你计算完成所有 n 个工作所需的最短时间。
约束条件:
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册