题目:在一个夜黑风高的晚上,有n个小朋友在桥的这边,现在他们需要过桥,但是由于桥很窄,每次只允许一人或两人通过,他们只有一个手电筒,所以每次过桥的两个人其中有一个需要把手电筒送回来,i号小朋友过桥的时间为T[i],两个人过桥的总时间为二者中时间长者。问所有小朋友过桥的总时间最短是多少。
题解
def text(n, a):
a.sort()
m = [0 for i in range(n)]
m[0] = a[0]
m[1] = a[1]
for i in range(2, n):
m[i] = min(m[i-1]+a[i]+a[0], m[i-2]+a[i]+a[0]+a[1]+a[1])
return m[-1]
"""4个孩子,时间分别是1,2,5,10"""
print(text(4, [1,2,5,10]))
"""答案是17"""