解决具有两个属性的背包问题的最快方法是什么

2023-12-08

假设我们有一个输入:

10 // saying 1st property should be 10(in total)
10 // saying 2d property should be 10 (in total)
5 // saying theres 5 records below
// (1st property) (2nd property) (cost)
2 5 8 
7 3 10 
4 2 9
4 3 5
8 5 15

在这种情况下,输出将如下所示:

22 // lowest possible cost
1 3 4 // indexes of records, we've been using (indexing starts with 1)

 2  5  8
 4  2  9
 4  3  5
+---------
 10 10 22

如果没有可能的方法使这些属性达到 10 和 10,程序将输出 -1; 我确实知道如何解决背包问题,但是我不知道如何解决这个问题。


您可以使用与背包问题相同的方法,但您将拥有一个 3D 表,而不是 2D 矩阵,每个参数都有一个维度(2 个约束 + 索引)。

递归公式将类似,但当然会对两个参数都进行递归公式。

f(item,cost1,cost2) = max {
               f(item-1,cost1,cost2), 
               f(item,cost1-firstCost[i],cost2-secondCost[i]) + profit[i]
                          }

(基本子句也类似,但有一个额外的维度。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决具有两个属性的背包问题的最快方法是什么 的相关文章

  • 确定解决迷宫问题的最小线段数

    我有一个问题 我需要定义一个具有最少数量的顶点的多边形 该多边形与不透明的图像中的每个像素相交或包含每个像素 令 N 为图像中的像素数 我唯一的假设是图像的边界 孔 内不能包含透明像素 并且至少有两个像素是不透明的 举个例子 假设我有以下图
  • 图中的后边

    I m having a hard time understanding Tarjan s algorithm for articulation points I m currently following this tutorial he
  • 我需要一个支持高效随机访问和 O(k) 插入和删除的容器

    我再次尝试问同样的问题question https stackoverflow com questions 3808708 delete parts of a dynamic array and grow other 但我最终提出了一个不同
  • 找到一系列间隔的最有效分组

    我有一个应用程序 其中有一系列不重叠的固定宽度间隔 每个间隔都有一个给定的键 每个间隔具有相同的宽度 并且可以存在连续的间隔 本质上 我想以最小化单独间隔的数量的方式对间隔和键进行分组 这可以通过合并具有相同键的连续间隔或查找匹配间隔并将它
  • 最慢的计算复杂度(Big-O)

    在这些算法中 我知道 Alg1 是最快的 因为它是 n 平方的 接下来是 Alg4 因为它是 n 的立方 然后 Alg2 可能是最慢的 因为它是 2 n 这应该具有非常差的性能 然而Alg3和Alg5在我的阅读速度方面还没有遇到过 这两种算
  • 解释一下从 N 个给定集合中的每一个中给出第 K 个最大数字的示例?

    今天我尝试解决一个Facebook 编程挑战赛 https facebook interviewstreet com recruit challenges 我遇到的挑战是 酒吧问题 可以找到here https github com alo
  • 在 C++ 中通过引用传递 std 算法谓词

    我正在尝试从 a 中删除元素std list并保留已删除元素的一些统计信息 为此 我使用列表中的remove if 函数 并且我有一个谓词 我想使用这个谓词来收集统计数据 这是谓词的代码 class TestPredicate privat
  • 数组中连续元素的最大乘积

    我在现场面试的时候被问到了这个算法问题 由于没有要求我签署保密协议 我将其发布在这里寻求答案 给定一个数组REAL不包含 0 的数字 找到产生最大乘积的连续元素 该算法应在线性时间内运行 我考虑过以下方法 使用两个数组 第一个是利用DP思想
  • URL路径相似度/字符串相似度算法

    我的问题是我需要比较 URL 路径并推断它们是否相似 下面我提供了要处理的示例数据 GROUP 1 robots txt GROUP 2 bot html GROUP 3 phpMyAdmin 2 5 6 rc1 scripts setup
  • 生成所有多集大小为 n 的分区的算法

    我一直在试图找出一种方法来生成多重集的所有不同的大小为 n 的分区 但到目前为止却空手而归 首先让我展示一下我想要实现的目标 假设我们有一个输入向量uint32 t std vector
  • 在常数空间中创建 1..N 的随机排列

    我正在寻找枚举固定空间中数字 1 N 的随机排列 这意味着我无法将所有数字存储在列表中 原因是 N 可能非常大 超过可用内存 我仍然希望能够一次遍历这样一个数字的排列 只访问每个数字一次 我知道对于某些 N 可以这样做 许多随机数生成器随机
  • 数学组合的完美最小哈希

    首先定义两个整数N and K where N gt K 两者都在编译时已知 例如 N 8 and K 3 接下来 定义一组整数 0 N or 1 N 如果这使答案更简单 并调用它S 例如 0 1 2 3 4 5 6 7 的子集数量S wi
  • 绘制多边形

    我正在使用 Google Maps API V3 根据路径绘制多边形 该路径是随机未排序坐标点 LatLng 的数组 这会产生以下形状 Polylines intersect Problem 由于多边形的形状取决于路径中点的顺序 因此如何对
  • 解开 Knuth 的结:如何重构意大利面条式代码?

    这个问题的灵感来自如何将流程图转化为实施 https stackoverflow com questions 36647765它询问如何通过算法消除goto代码中的语句 这answer https stackoverflow com a 3
  • 二维滑动窗口最小值/最大值

    假设我们得到一个大小为 NxN 的像素整数矩阵和一个整数 k 窗口大小 我们需要使用滑动窗口找到矩阵中的所有局部最大值 或最小值 这意味着 如果某个像素与其周围窗口中的所有像素相比具有最小 最大 值 则应将其标记为最小 最大 有一种著名的滑
  • 如何对对象进行排序? (画家算法)

    所以我有 4 个矩形形状 我正在尝试应用排序算法 画家算法 https en wikipedia org wiki Painter 27s algorithm 来知道我需要先绘制哪些形状 在 3d 中 然后绘制哪个形状 Note 相机位于右
  • Prim 的迷宫生成算法:获取相邻单元格

    我基于 Prim 算法编写了一个迷宫生成器程序 该算法是 Prim 算法的随机版本 从充满墙壁的网格开始 选择一个单元格 将其标记为迷宫的一部分 将单元格的墙壁添加到墙壁列表中 While there are walls in the li
  • 数量重新分配逻辑 - 具有外部数据集的 MapGroups

    我正在研究一种复杂的逻辑 需要将数量从一个数据集重新分配到另一个数据集 在例子中我们有Owner and Invoice 我们需要从数量中减去Invoice准确地Owner匹配 在给定汽车的给定邮政编码处 减去的数量需要重新分配回同一辆车出
  • 如何计算排列? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个关于 Java 排列的问题 Suppose I have five different elements in an arra
  • 从 1 到 20 亿,像 (23,29) 这样相差 6 的连续素数对的数量

    如何在考虑时间复杂度的情况下从 1 到 20 亿 使用任何编程语言且不使用任何外部库 找到像 23 29 这样相差 6 的连续素数对的数量 尝试过埃拉托色尼筛 但获得连续素数是一个挑战 使用了生成器 但时间复杂度非常高 代码是 def ge

随机推荐

  • Apache AGE-如何实现两个图之间的关系

    如果我们有 2 个图数据库 A 和 B 并且当前节点 A 图数据库和 B 图数据库之间没有关系 现在我必须在 A 节点和 B 节点之间添加关系 那么如何我使用 AGE 来做到这一点 例如 A 可以是员工图数据库 B 可以是任何汽车经销商图数
  • 按词汇顺序查找总和为给定数字的千组

    较大的数字可以采用逗号格式 以便更容易地分为三个一组 例如 1050 1 050 and 10200 10 200 每三组的总和为 1050 1 050 gives 1 50 51 10200 10 200 gives 10 200 210
  • 创建像 TextLine 这样的 Scalding Source,将多个文件组合到单个映射器中

    我们有许多小文件需要合并 在烫伤中你可以使用TextLine将文件作为文本行读取 问题是我们有 1 个映射器per file 但我们想要合并多个文件 以便它们由 1 个映射器处理 我知道我们需要将输入格式更改为实现CombineFileIn
  • 使用 Dropwizard 0.7.0 实现长轮询服务器

    我正在尝试使用 Dropwizard 0 7 0 框架实现长轮询服务器 有人建议我使用码头集成 经过一番谷歌搜索后 我对 websockets jetty continuation cometd 之类的东西感到非常困惑 我的问题是 这些东西
  • 从 URL 打开 PDF

    我是android开发的新手 我必须显示来自 URL 的 PDF 这是我当前的代码 但我无法显示 PDF 文件 public class TestActivity extends Activity public void onCreate
  • 查询查找所有非零毫秒的文档

    有大量的收藏transaction文档 2M Each transaction文档有一个source billDate field source billDate ISODate 2018 07 23T16 02 06 797Z or so
  • Twitter Bootstrap:将导航选项卡与 div 底部对齐

    我正在建立一个网站 这是我第一次使用 Twitter 引导程序 我正在尝试将菜单与 div 底部对齐 但由于某种原因我不知道该怎么做 我做了一些研究并尝试使用 box align 属性 但这没有用 这是我的代码 div class row
  • 使用 Nodejs 避免 Promise 中的回调地狱

    我已经使用 Promise 在 Node js 中编写了大约六个函数 我真的想发布所有这些代码 而不是发布一个模拟示例 这样我就可以简洁地封装我的问题 所以说我有以下两个功能 foo gt return new Promise r rj g
  • 在一个轴上应用两个变换

    我已经发现coord trans 但我想申请log10 and reverse到我的x轴 我尝试应用两种变换 ggplot table aes color Vowel x F1 y F2 geom point coord trans x l
  • 当链接在新选项卡中打开时如何留在当前窗口?

    当用户点击链接时 a href http www stackoverflow com target blank click a 有没有办法留在当前窗口而不是转到选项卡 我猜 target blank 会打开新选项卡 Windows 但也会切
  • 推送配置更改后,Gitosis 不更新服务器配置

    我已经使用提供的教程设置了 gitosis http scie nti st 2007 11 14 hosting git repositories the easy and secure way 我发现在 gitosis conf 中添加
  • 如何通过ajax向Perl脚本发送数据?

    我想通过 ajax 将数据发送到 Perl 脚本 并从它接收 json 格式 但这不起作用 我知道以下脚本中有问题 有谁知道如何修理它 jQuery 代码 test click function var ID 100 var data da
  • 帮助构建一个基本的 php 搜索引擎

    我到处寻找教程 但似乎找不到好的教程 具有分页 列标题排序和多重过滤的搜索页面 过滤器位于复选框中 问题 分页工作 排序工作 但无法让它们一起工作 添加到使过滤器与分页和排序的结果集一起使用 我想单独使用 php 和 GET 表单方法来完成
  • 你能计算出文本注释的大小吗?

    我想计算数据坐标中 matplotlib 中文本标签的大小 高度和宽度 以便我可以按其自身的大小将其沿某个方向移动 理想情况下 我想在绘制之前知道尺寸 import matplotlib pylab as pylab pylab figur
  • 如何制作垂直的 UIToolbar?

    如何制作垂直的 UIToolbar 子类化 UIToolbar 并执行以下操作 CGFloat DegreesToRadian CGFloat degrees return M PI degrees 180 0 id initWithFra
  • Google Chrome 中的溢出隐藏和输入文本滚动

    这是我的代码片段 http jsfiddle net 7CuBV 6 如果我单击并拖动输入文本字段 我会得到带有溢出 隐藏滚动的 div 就像使用溢出 自动一样 如果我在div上设置overflow hidden 我希望像其他浏览器一样锁定
  • array_view.synchronize_asynch 会等待parallel_for_each 完成吗?

    如果我有一个concurrency array view正在接受手术concurrency parallel for each循环 我的理解是我可以在循环执行时继续CPU上的其他任务 using namespace Concurrency
  • Python 根据键求和字典值

    如何对 dict 中的值求和 其中值是字符串 我的意思是如何对字典中乘法键相同的值求和 dict values rashod 0 prihod 230 0 prod name r prod hola t rashod 0 prihod 23
  • 如何使用 bash 更改日志文件中的日期格式,避免 while 循环

    这不是一个新问题here and here 但细节却有所不同 我的输入日志文件如下所示 TEMP MON Sat Aug 15 02 20 24 EEST 2020 48 6 TEMP MON Sat Aug 15 02 20 50 EES
  • 解决具有两个属性的背包问题的最快方法是什么

    假设我们有一个输入 10 saying 1st property should be 10 in total 10 saying 2d property should be 10 in total 5 saying theres 5 rec