C++ 这是多约束背包变化吗?
我已经检查了其他问题(),但我不认为它们真的解决了我的问题 假设我们有N个bucket(用数字标记),每个bucket都包含一个有限且大于0的标记M(i)(M可以在不同的bucket之间更改) 每个标记都有两个属性x和y(您可以将它们看作实数)。我的问题是找到满足以下条件的配置: 1) 每个铲斗只能选择一个或零个元素 2) 在最终配置中选择的每个元素的x属性必须大于输入值x 3) 最终配置中属性y的所有元素的总和必须大于或等于输入值y。但是,删除最终列表中的任何元素都必须导致总和严格小于y 4) 应首选具有较少元件的配置 现在,在我看来,它类似于多约束背包问题,但是,有两个不同点,我不能真正把我的头绕过去(主要是桶和条件3) 问题 因为,我不想重新发明轮子 我的问题有名字和已知的解决方案吗 如果不是,哪一个是最接近的算法?我是否错过了一些明显的东西,使我的问题回到背包问题上 注意C++ 这是多约束背包变化吗?,c++,algorithm,knapsack-problem,C++,Algorithm,Knapsack Problem,我已经检查了其他问题(),但我不认为它们真的解决了我的问题 假设我们有N个bucket(用数字标记),每个bucket都包含一个有限且大于0的标记M(i)(M可以在不同的bucket之间更改) 每个标记都有两个属性x和y(您可以将它们看作实数)。我的问题是找到满足以下条件的配置: 1) 每个铲斗只能选择一个或零个元素 2) 在最终配置中选择的每个元素的x属性必须大于输入值x 3) 最终配置中属性y的所有元素的总和必须大于或等于输入值y。但是,删除最终列表中的任何元素都必须导致总和严格小于y 4)
理想情况下,我正在寻找C++(库/实例/分析),但我很乐意得到任何编程语言的引用。对于C++,GLPK和CBC虽然有可能是较低级别的风格。举个小例子怎么样?了解你的问题可能会有帮助。用例是什么?删除元素导致