在Python中查找将同样数量的人发送到两个不同城市所需的最小费用
假设我们有一个名为costs的列表。其中costs [i]有[c1,c2],表示对于第i个人,到达城市0需要花费c1金额,到达城市1需要花费c2金额。我们希望同样数量的人前往城市0和城市1,我们必须找到所需的最小费用。
因此,如果输入是costs = [[2,6],[10,3],[4,9],[5,8]],则输出将为17,因为人0和2将前往城市0,人1和3将前往城市1,因此对于城市0,费用为2 + 4 = 6,对于城市1,费用为8 + 3 = 11,总计17。
要解决这个问题,我们将遵循以下步骤:
- s:= 0
- a:=新列表
- 对于成本中的每一对(x,y),都要做以下操作
- s:= s + x
- 在a的末尾插入(y-x)
- 对于列表a进行排序
- for i in range 0到(floor of (size of a / 2) – 1),do
- s:= s+a [i]
- 返回s
例子
让我们看以下实现以更好地理解-