bzoj1070: [SCOI2007]修车

Time Limit: 1 Sec  Memory Limit: 128 MB

Description

  同一时刻有N位车主带着他们的爱车来到了汽车维修中心。维修中心共有M位技术人员,不同的技术人员对不同
的车进行维修所用的时间是不同的。现在需要安排这M位技术人员所维修的车及顺序,使得顾客平均等待的时间最
小。 说明:顾客的等待时间是指从他把车送至维修中心到维修完毕所用的时间。

Input

  第一行有两个m,n,表示技术人员数与顾客数。 接下来n行,每行m个整数。第i+1行第j个数表示第j位技术人
员维修第i辆车需要用的时间T。

Output

  最小平均等待时间,答案精确到小数点后2位。

Sample Input

2 2
3 2
1 4

Sample Output

1.50

HINT

数据范围: (2<=M<=9,1<=N<=60), (1<=T<=1000)

 
 
这题的意思是离开了之后就不再计时(对于这个人),求总时间除以顾客人数n。
假设我们已经决定好了每个工人修哪些车,那么这个工人的这些顾客(假设有q个)的总等待时间就为t1*q+t2*(q-1)+.....+tq*1
于是对于倒数第k个,他所造成的等待时间和为k*t[q-k] ,(其他所有在他后面的人都要等待)。
把每个工人拆成N个点。i,H表示第i个工人修的倒数第H辆车。每个车跟所有N*M个工人拆出的点连边。流量为1,费用为time[车,人]*H(倒数编号)。源和每辆车连边,N*M个点和汇连边,流量都为1,费用同为0。
原文地址:https://www.cnblogs.com/awipppp/p/5956746.html