首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用最小的成本分成n个垃圾箱

用最小的成本分成n个垃圾箱
EN

Stack Overflow用户
提问于 2018-10-05 12:11:39
回答 1查看 573关注 0票数 4
  1. 考虑2*k元组(a0,b0),(a1,b1),.2桶A和B。把i-th元组放在bin A中将花费ai美元,在bin B中花费bi美元。在bin A中放置k元素和在bin B中放置k元素的最低成本是多少?

我提出了一个贪婪的算法:按降序对元组数组进行排序,以abs(ai - bi)作为键。但是,我们能否用动态规划来解决这个问题呢?如果有n回收箱而不是两个。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-05 19:11:57

对于第一个I元素,当在bin A中放置j元素时,dp[i][j]是最小成本,例如,对于前4个元素,dp[0][0]是将0元素放入A中的最小成本;dp[4][2]是将2个元素放入A中的最小成本。

然后:对于ith元素(索引是i - 1,所以我使用b[i - 1]a[i - 1]),我们需要将其放入bin A或bin B中,因此我们计算了两种情况的最小值:

dp function: dp[i][j] = Math.min(dp[i - 1][j] + b[i - 1], dp[i][j - 1] + a[i - 1])

那么问题是如何获得dp[2*k][k]

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52665369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档