【发布时间】:2014-12-12 08:49:15
【问题描述】:
我目前正在从事一个模拟几种不同类型网络的宠物项目。其中之一需要一些特定的条件,直到现在我只是蛮力的。然而,它的扩展性并不好,所以我试图有效地做到这一点,但这个算法真的让我很难过!我会尽量概括地描述这个问题。
给定一组整数 X 和一个整数 k,找到 X 的一个子集 Y,它在 X 中的每个值上最大化 M 的总和:
M(s) = Y 中小于或等于 s 的最大值。
例如,对于 {2, 4, 5} 和 k = 2,解是 {2, 4},其值为 2+4+4=10,因为 M(2) = 2, M(4) = 4,和 M(5) = 5。
我的直觉是解决方案是一种动态编程算法,但我可能还差得很远。任何帮助将不胜感激!
【问题讨论】:
标签: algorithm networking dynamic-programming