def schedule_tasks(machines):# 按照运行时间 J 从大到小排序machines.sort(key=lambda x: x[1], reverse=True)total_time = 0current_time = 0for B, J in machines:current_time += Btotal_time = max(total_time, current_time + J)return total_timedef main:M = int(input)results = for _ in range(M):N = int(input)machines = for _ in range(N):B, J = map(int, input.split)machines.append((B, J))result = schedule_tasks(machines)results.append(result)# 全部输入处理完毕后输出结果for res in results:print(res)if __name__ == "__main__":main排序策略:为了最小化总完成时间,我们应该优先配置那些运行时间较长的机器。这样,这些机器可以在配置完成后尽早开始运行,从而减少总时间。计算总时间:我们按照运行时间从长到短的顺序配置机器。在配置过程中,累加配置时间,并跟踪当前的总时间(配置时间加上运行时间)。输出结果:对于每组任务,计算并输出最短完成时间。摘要:def schedule_tasks(machines):# 按照运行时间 J 从大到小排序machines.sort(key=lambda x: x[1], reverse=True)total_time = 0current_time = 0for B,
来源:佳佳课堂