玩具工厂里有很多工人(工人总数是偶数)正在车间工作,第i名工人需要制造ai个零件(可能有多名工人制造的零件数相同)。老板决定将每2名工人组成一组,每组工人生成零件所需要的时间值恰好等于他们两人生产的零件个数总和。那么应该如何将这些工人配对,才能使的完成所有零件的生产所需要的时间最短?请输出这个最短时间。 注意:所有组工人都是同时开工。
时间: 2024-04-12 14:34:25 浏览: 128
Java 实现多线程切换等待唤醒交替打印奇偶数
要使完成所有零件的生产所需时间最短,可以按照以下步骤进行配对:
1. 将所有工人按照制造零件的数量从小到大排序。
2. 从数量最少的工人开始,依次将他们配对。每次配对选择数量最少的工人与数量最多的工人进行配对,并计算他们生产零件所需的时间。
3. 将已配对的工人从列表中移除,并将他们配对所需的时间累加到总时间中。
4. 重复步骤2和步骤3,直到所有工人都被配对完毕。
最后得到的总时间即为完成所有零件的生产所需的最短时间。
阅读全文