算法:2n个数和是2s,取其中n个数使和最接近s

land_L 2015-11-05 05:40:16
据说是背包算法的变种

求转化过程,有详解更好
...全文
189 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Poopaye 2015-11-06
  • 打赏
  • 举报
回复
引用 7 楼 sbwwkmyd 的回复:
[quote=引用 6 楼 shingoscar 的回复:] [quote=引用 4 楼 land_L 的回复:] var s={98,69,57,54,47,42,31,0}
n=4 s=199 取中间4个数57、54、47、42,和为200 有什么问题?[/quote]试试1,2,3,4,5,6,7,10[/quote] 不能自己试吗?
showjim 2015-11-06
  • 打赏
  • 举报
回复
引用 6 楼 shingoscar 的回复:
[quote=引用 4 楼 land_L 的回复:] var s={98,69,57,54,47,42,31,0}
n=4 s=199 取中间4个数57、54、47、42,和为200 有什么问题?[/quote]试试1,2,3,4,5,6,7,10
Poopaye 2015-11-06
  • 打赏
  • 举报
回复
引用 4 楼 land_L 的回复:
var s={98,69,57,54,47,42,31,0}
n=4 s=199 取中间4个数57、54、47、42,和为200 有什么问题?
showjim 2015-11-06
  • 打赏
  • 举报
回复
普通的DP背包,求是否存在解的状态点只记录sum,求某一具体解需要记录上一个状态点。 你这个需要增加 数量 这一维状态,空间与时间复杂度都需要*n。
land_L 2015-11-06
  • 打赏
  • 举报
回复
var s={98,69,57,54,47,42,31,0}
引用 3 楼 shingoscar 的回复:
[quote=引用 2 楼 land_L 的回复:] [quote=引用 1 楼 shingoscar 的回复:] 按大小排序,取中间n个数
水的漂亮[/quote] 这个算法是有什么问题吗?[/quote]
Poopaye 2015-11-06
  • 打赏
  • 举报
回复
引用 2 楼 land_L 的回复:
[quote=引用 1 楼 shingoscar 的回复:] 按大小排序,取中间n个数
水的漂亮[/quote] 这个算法是有什么问题吗?
land_L 2015-11-06
  • 打赏
  • 举报
回复
引用 1 楼 shingoscar 的回复:
按大小排序,取中间n个数
水的漂亮
land_L 2015-11-06
  • 打赏
  • 举报
回复
引用 6 楼 shingoscar 的回复:
[quote=引用 4 楼 land_L 的回复:] var s={98,69,57,54,47,42,31,0}
n=4 s=199 取中间4个数57、54、47、42,和为200 有什么问题?[/quote] 取{98,54,47,0} 或者{69,57,42,31}和为199 多说一句,算法还是不能靠猜或者试,应该有合理的推导方式才行。用想当然的结果回答别人可不是很好。
land_L 2015-11-06
  • 打赏
  • 举报
回复
引用 5 楼 sbwwkmyd 的回复:
普通的DP背包,求是否存在解的状态点只记录sum,求某一具体解需要记录上一个状态点。 你这个需要增加 数量 这一维状态,空间与时间复杂度都需要*n。
就是多了一个数量的限制,具体怎么去做这个呢?可以更详细一点么?
Poopaye 2015-11-05
  • 打赏
  • 举报
回复
按大小排序,取中间n个数

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧