问题:有十人各拿一只水桶去打水,如果水龙头灌满第i个人的水桶需要ti分钟,且这些ti(i=1,2, ...,10)各不相等,试问:
若有两个相同的水龙头供水时,应如何安排这十个人的次序,使他们花费的总时间最少?这个最少的总时间是多少?
导思:考虑两个水龙头,要注意数组的搭配与数组中的大小顺序,可以联系教材上一个水龙头供水时的设定方法去求解.
探究:如果有两个水龙头,设总时间最少时有m个人在第一个水龙头打水,设依次所需时间为p1,p2, ...,pm;有10-m个人在第二个水龙头打水,依次所需时间设为q1,q2, ...,q10-m.显然必有一个水龙头的打水人数不少于5人,不妨设为第一个水龙头,也不可能有一个水龙头没人去打水,则5≤m<10.设
p1 总花费的时间为: T=mp1+(m-1)p2+...+pm+(10-m)q1+(9-m)q2+...+q10-m. 其中{p1,p2, ...,pm,q1,q2, ...,q10-m}={t1,t2, ...,t10},t1 首先我们来证明m=5.若不然,我们让在第一个水龙头打水的第一人到第二个水龙头的第一位去,则总花费的时间变为: T′=(m-1)p2+...+pm+(11-m)p1+(10-m)q1+...+q10-m. T-T′=(2m-11)p1>0. 即当m>5时,我们让第一水龙头的第一人到第二水龙头去后,总时间减少.故在m=5时,总时间可能取得最小值. 由于m=5,故两个水龙头人一样多,总用时: T=(5p1+4p2+3p3+2p4+p5)+(5q1+4q2+3q3+2q4+q5). 由于p1 不妨设p1=t1.下证q1 T″=(5p1+4q1+3p3+2p4+p5)+(5p2+4q2+3q3+2q4+q5), T-T″=q1-p2>0. 即经交换后总时间变少.故q1 类似地我们可以证明:pi 水龙头一:t1,t3,t5,t7,t9; 水龙头二:t2,t4,t6,t8,t10. 其中:t1