#1496. 批处理作业调度

批处理作业调度

题目描述

给定n\red{n}个作业的集合JJ1,J2,,Jn\red{J={J_1,J_2,…,J_n }}。每一个作业Ji\red{J_i}都有两项任务分别在两台机器上完成。每个作业必须先由机器1\red{1}处理,然后由机器2\red{2}处理。作业Ji\red{J_i}需要机器j的处理时间为tji\red{t_{ji}},其中i1,2,,nj1,2\red{i=1,2,…,n,j=1,2}。对于一个确定的作业调度,设Fji\red{F_{ji}}是作业i\red{i}在机器j\red{j}上完成处理的时间。所有作业在机器2\red{2}上完成处理的时间和f=i=1nF2i\red{f=\displaystyle\sum_{i=1}^{n}F_{2i}}

称为该作业调度的完成时间和(n<=15)\red{(n<=15)}

批处理作业调度问题要求对于给定的n\red{n}个作业,制定最佳调度方案,使其完成时间和达到最小。

批处理作业调度问题的一个常见例子是在计算机系统中完成一批n\red{n}个作业,每个作业都先完成计算,然后将计算结果打印输出。计算任务由计算机的中央处理器完成,打印输出任务由打印完成。在这种情形下,计算机的中央处理器是机器1\red{1},打印是机器2\red{2}

对于批处理作业调度问题,可以证明,存在最佳作业调度使得在机器1\red{1}和机器2\red{2}上作业以相同次序完成。例如,考虑如下n3\red{n=3}的实例。

tji\red{t_{ji}} 机器1 机器2
作业1\red{1} 作业2\red{2} 作业3\red{3} 2\red{2} 3\red{3} 2\red{2} 1\red{1} 1\red{1} 3\red{3}

3\red{3}个作业的6\red{6}种可能的调度方案是123132213231312321\red{1,2,3;1,3,2;2,1,3;2,3,1;3,1,2;3,2,1};它们所对应的完成时间和分别是191820211919\red{19,18,20,21,19,19}。显而易见,最佳调度方案是132\red{1,3,2},其完成时间和为18\red{18}

样例

输入样例

6        

3 8

12 10

5 9

2 6

9 3

11 1

输出样例

154