#SLT03A. 2026年S组模拟赛10连测第3场-T1 批次检修
2026年S组模拟赛10连测第3场-T1 批次检修
| 项目 | 内容 |
|---|---|
| 输入文件名 | batch.in |
| 输出文件名 | batch.out |
| 可执行文件名 | batch |
| 每个测试点时限 | 1.0 秒 |
| 内存限制 | 512 MiB |
| 测试点数目 | 20 |
| 是否等分 | 是 |
结果比较方式为全文比较(过滤行末空格及文末换行)。
题目描述
某工厂的设备科收到 批检修工单,批次编号为 。批 包含 台设备,其中第 台设备的检修耗时为 ,重要度为 。全部设备由同一组检修工从时刻 起串行检修,同一时刻只能检修一台设备。
检修规程对执行顺序有如下要求:同一批内的设备必须按工单给定的顺序依次检修;一批一旦开始检修,就必须连续做完该批的全部设备,中途不得插入其他批次的设备;而批与批之间的先后次序可以自由安排。
设设备 的完工时刻为 (即该设备检修完成的时刻),检修科为这批工单核算的总代价为所有设备的 之和,即 。
请核算:如何安排批次的执行顺序,才能使总代价最小。输出最小总代价,以及达到该最小代价的批次执行顺序(一个批号序列)。
输入格式
从文件 batch.in 中读入数据。
- 第一行一个整数 ,表示批次的数量;
- 接下来依次给出 个批次的工单。批 的工单格式为:第一行一个整数 ,表示该批的设备数量;随后 行,每行两个整数 ,依次表示该批第 台设备的检修耗时与重要度。
输出格式
输出到文件 batch.out 中。
- 第一行一个整数,表示最小总代价;
- 第二行 个整数,用一个空格隔开,表示达到最小总代价的批次执行顺序(按执行先后给出的批号序列)。
样例
3
2
5 1
1 3
1
4 4
2
2 2
3 1
94
2 1 3
样例 1 解释
按 的顺序执行:先做批 ,唯一一台设备在时刻 完工,代价 ;再做批 ,两台设备分别在时刻 、 完工,代价 ;最后做批 ,两台设备分别在时刻 、 完工,代价 。总代价 。
4
1
1 1
1
3 6
2
2 5
1 4
1
2 5
104
3 4 2 1
样例 2 解释
按 的顺序执行:批 的两台设备在时刻 、 完工,代价 ;批 的设备在时刻 完工,代价 ;批 的设备在时刻 完工,代价 ;批 的设备在时刻 完工,代价 。总代价 。
2
3
4 2
1 1
2 3
2
3 2
2 1
66
1 2
样例 3 解释
按 的顺序执行:批 的三台设备分别在时刻 、、 完工,代价 ;批 的两台设备分别在时刻 、 完工,代价 。总代价 。若按 的顺序执行,批 的代价为 ,批 的三台设备完工时刻变为 、、,代价为 ,总代价 。
数据范围
对于所有测试数据,保证:
- ;
- ,且 ;
- ;
- 各批次的 与 之比两两不同。
各测试点的约束如下:
| 测试点 | 特殊性质 | ||
|---|---|---|---|
| 无 | |||
| A | |||
| 无 | |||
- 特殊性质 A:每批只有一台设备,即 。
难度
未评定
通过率
—
尝试
0
通过
0
- ID
- 3777
- 类型
- 传统题
- Time Limit
- 1000ms
- Memory Limit
- 512MiB
- 上传者