A2828 | 工序安排 Job Processing
来源USACO
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
一家工厂的流水线正在生产一种产品,这需要两步操作:操作机器 $A$ 和操作机器 $B$。每个操作只有一些机器能够完成。


图片解释:第一行为输入容器的内容。第二行为A机器工作方式。第三行为中间容器的内容。第四行为B机器工作方式。第四行输出最终成果。
上图显示了按照下述方式工作的流水线的组织形式。$A$ 型机器从输入库接受工件,对其施加操作 $A$,得到的中间产品存放在缓冲库。$B$ 型机器从缓冲库接受中间产品,对其施加操作 $B$,得到的最终产品存放在输出库。所有的机器平行并且独立地工作,每个库的容量没有限制。每台机器的工作效率可能不同,一台机器完成一次操作需要一定的时间。
给出每台机器完成一次操作的时间,计算完成 $A$ 操作的时间总和的最小值,和完成 $B$ 操作的时间总和的最小值。
注:
1. 机器在一次操作中干掉一个工件;
2. 时间总和的意思是最晚时间点。


图片解释:第一行为输入容器的内容。第二行为A机器工作方式。第三行为中间容器的内容。第四行为B机器工作方式。第四行输出最终成果。
上图显示了按照下述方式工作的流水线的组织形式。$A$ 型机器从输入库接受工件,对其施加操作 $A$,得到的中间产品存放在缓冲库。$B$ 型机器从缓冲库接受中间产品,对其施加操作 $B$,得到的最终产品存放在输出库。所有的机器平行并且独立地工作,每个库的容量没有限制。每台机器的工作效率可能不同,一台机器完成一次操作需要一定的时间。
给出每台机器完成一次操作的时间,计算完成 $A$ 操作的时间总和的最小值,和完成 $B$ 操作的时间总和的最小值。
注:
1. 机器在一次操作中干掉一个工件;
2. 时间总和的意思是最晚时间点。
输入格式
第一行:三个用空格分开的整数:$N$,工件数量($1\leq N\leq1000$);$M_1$,$A$ 型机器的数量($1\leq M_1\leq30$);$M_2$,$B$ 型机器的数量 ($1\leq M_2\leq30$)。
第二行:$M_1$ 个整数,表示 $A$ 型机器完成一次操作的时间;接着是 $M_2$ 个整数,$B$ 型机器完成一次操作的时间。
第二行:$M_1$ 个整数,表示 $A$ 型机器完成一次操作的时间;接着是 $M_2$ 个整数,$B$ 型机器完成一次操作的时间。
输出格式
只有一行。输出两个整数:完成所有 $A$ 操作的时间总和的最小值,和完成所有 $B$ 操作的时间总和的最小值($A$ 操作必须在 $B$ 操作之前完成)。
输入输出样例
输入 #1
5 2 3 1 1 3 1 4
输出 #1
3 5
无
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?