在 Python 中找到将相同数量的人发送到两个不同城市的最低成本的程序
假设我们有一个名为成本的列表。cost[i]有[c1,c2]表示对于人i,到达城市0的成本为c1,到达城市1的成本为c2。我们希望前往城市0的人数与前往城市1的人数相同,我们必须找到所需的最低成本。
因此,如果输入类似于成本=[[2,6],[10,3],[4,9],[5,8]],那么输出将是17,因为人0和2将去城市0和人1和3到城市1,所以对于城市0,成本是2+4=6,对于城市1,成本是8+3=11,总共是17。
示例
让我们看看以下实现以获得更好的理解-
def solve(costs): s = 0 a = [] for x, y in costs: s += x a += (y - x,) a.sort() for i in range(len(a) //2): s += a[i] return s costs = [[2, 6],[10, 3],[4, 9],[5, 8]] print(solve(costs))
输入
[[2, 6],[10, 3],[4, 9],[5, 8]]输出结果
17