谈判蓝桥杯真题python解法

题目描述

谈判蓝桥杯真题python解法_第1张图片

解题思路

要让总花费最小,利用贪心思想,既每一步花费都最小(因为你如果先开始花费就大这个比较大的基数就会一直加导致结果大)。

怎么让每一步花费都最小,那么就是排序取前两个。当两个部落合并后删除原先的两个部落,添加合并后的部落要重新排序!!

代码

    n=int(input())
    a=list(map(int,input().strip().split()))
    a.sort()
    expense=0
    while len(a)>1:
        expense+=a[0]
        expense+=a[1]
        a.append(a[0] + a[1])
        del a[0]#注意删除前两个既删除了第一个又删第一个
        del a[0]
        a.sort()
    print(expense)

你可能感兴趣的:(算法,蓝桥杯,算法,c++,python,java)