假设这6个人的购票时间分别为$a_1,a_2,a_3,a_4,a_5,a_6$,他们的购票顺序为$x_1,x_2,x_3,x_4,x_5,x_6$,即第$x_i$个购票。根据题意,目标是让他们的购票时间总和最小,可以使用贪心算法。

首先,最优情况下,购票时间短的人应该尽量早买票,因为他们买票的时间对总时间的贡献最小。因此,可以将购票时间从小到大排序,得到$a_1=1,a_2=2,a_3=3,a_4=4,a_5=5,a_6=8$。

接下来,考虑如何安排他们的购票顺序。显然,第一个购票的人可以是任意一个人,不妨设为$a_1$。对于第二个购票的人,如果选择购票时间最短的人$a_2$,那么第一个人购票后需要等待2分钟,第二个人购票后需要等待1分钟,总等待时间为3分钟。但是如果选择购票时间较长的人$a_6$,那么第一个人购票后需要等待8分钟,第二个人购票后需要等待1分钟,总等待时间为9分钟。因此,第二个购票的人应该选择购票时间较短的人中,离第一个购票的人最近的人,即$a_3$。同理,第三个购票的人应该选择离第二个购票的人最近的人,即$a_2$,以此类推。

因此,购票顺序应该为$a_1,a_3,a_2,a_4,a_5,a_6$,总等待时间为$1+3+3+4+5+5=21$分钟。

6人购票最短时间排序算法 - 贪心算法求解

原文地址: https://www.cveoy.top/t/topic/mVRe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录