首页 > 其他分享 >二维费用背包

二维费用背包

时间:2023-11-24 11:46:56浏览次数:29  
标签:费用 背包 最大 int 重量 二维 物品

二维费用背包

题目描述

有\(N\)件物品和一个容量是\(V\)的背包,背包能承受的最大重量是\(M\)。

每件物品只能用一次。体积是\(v_i\),重量是\(m_i\),价值是\(w_i\)。

求解将哪些物品装入背包,可使物品总体积不超过背包容量,总重量不超过背包可承受的最大重量,且价值总和最大。输出最大价值。

输入格式

第一行三个整数,\(N,V,M\),用空格隔开,分别表示物品件数、背包容积和背包可承受的最大重量,且价值总和最大。

接下来有\(N\)行,每行三个整数\(v_i,m_i,w_i\),用空格隔开,分别表示第\(i\)种物品的体积、重量和价值。

数据范围

\(0<N≤1000\),\(0<V,M≤100\),\(0≤v_i,m_i≤100\), \(0<w_i<=1000\)

思路及代码

增加了一个重量的限制,因此要多一个维度,多一层循环。

#include <iostream>
using namespace std;
const int N = 1010, K = 110;
int n, V, M;
int v[N], m[N], w[N];
int f[K][K];
int main()
{
    cin >> n >> V >> M;
    for (int i = 1; i <= n; ++ i)
        cin >> v[i] >> m[i] >> w[i];
    for (int i = 1; i <= n; ++ i)
    {
        for (int j = V; j >= v[i]; -- j)
        {
            for (int k = M; k >= m[i]; -- k)
            {
                f[j][k] = max(f[j][k], f[j - v[i]][k - m[i]] + w[i]);
            }
        }
    }
    cout << f[V][M] << endl;
    return 0;
}

模板题

洛谷P1507 NASA的食物计划

标签:费用,背包,最大,int,重量,二维,物品
From: https://www.cnblogs.com/acwhr/p/17853393.html

相关文章

  • 软件开发费用是多少?验收时看看有没有这些代码!
    在当今时代,软件开发已经成为企业竞争的关键因素之一,然而,许多企业在面对软件开发时,往往会面临一个问题:软件开发费用是多少?验收时又该如何检查这些代码呢?本文将为你解答这些问题,并分享一些基础的代码知识。一、软件开发费用是多少?首先,我们需要明白软件开发费用的影响因素有很多,包......
  • 快手原始ID转二维码工具,3m开头UID,一键转二维码跳转APP
    之前客户定制过一个工具,就是它从直播间或者评论区提取的ID都是3m开头的,这个不是快手id,类似于微信的原始ID,通过这个ID我们在快手客户端是搜不到的,但是通过浏览器能访问对方主页,比如”3xe9azfmv3396qq“这种形式的,我就开发了一个转二维码工具,就是把这个原始ID转换成二维码,然后通过扫......
  • 微软深夜放大招:GPT-4 、DALL·E 3、GPTs免费用,Copilot大一统!
    前言 近日,微软公司召开最新一场Ignite大会,CEO萨提亚・纳德拉在大会上介绍了100多项产品和技术的发布与更新,涉及范围非常广泛,包括应用、生产力以及安全性等多个方面。本文转载自机器之心仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专注于计算机视觉的技术总......
  • 陌陌头像留二维码隐藏技术,微信号,双头像生成工具,“codeA”方式开源
    正常情况下我们在陌陌头像留二维码会被系统检测到的,因为它识别到了这是二维码是,就算不封号对账号权重也有营销,但是一些人想在陌陌做一些产品,比如足浴、保健品之类的,想在陌陌引流,那么留二维码头像不封号的实现就非常重要了,我制作的这个工具可以生成干扰码,就是二维码生成干扰码导致......
  • 陌陌头像留微信号二维码不被检测的方法,工具一键生成干扰码,屏蔽系统检测
    正常情况下我们在陌陌头像留二维码会被系统检测到的,因为它识别到了这是二维码是,就算不封号对账号权重也有营销,但是一些人想在陌陌做一些产品,比如足浴、保健品之类的,想在陌陌引流,那么留二维码头像不封号的实现就非常重要了,我制作的这个工具可以生成干扰码,就是二维码生成干扰码导致......
  • 【题目-理想的正方形】 二维单调队列
    理想的正方形(二维单调队列)题目acwing.1091理想的正方形题解题目很好做,主要学习一下二维单调队列的写法首先将每行各窗口内最值用单调队列维护出来,保存在rmax中接着对rmax各列,将每列最值用单调队列维护出来,保存在cmax中,最后cmax中存的就是行和列窗口乘积范围的二维区间......
  • 二维字符数组特殊提醒
    如果要对二维字符数组一个一个位置赋初值,一定要像下面这么做chars[5][5],s1[5][5];for(inti=0;i<5;i++)for(intj=0;j<4;j++)//一定要注意j最多只能到3,因为最后一个位置要用来放停止符{s[i][j]=j+(int)'0';s[i][4]='\0';//一定要手动给最后一个位置放停止符}for......
  • wxid批量转换微信号接口工具,自动转换二维码,开源API分享!
    这个是今天客户定制的,就是从微信群导出了很多WXID,然后实现通过WXID加好友,我就直接调用了微信的接口,说明一下这是微信公开的接口,不存在HOOK或者是逆向技术存在的,公开接口,任何人都可以调用,我就是把接口通过易语言实现了批量生成的功能效果。界面图:  WXID添加效果,不是微信号,是......
  • 单调队列优化多重背包
    多重背包题目已经很熟了我们要把它优化到O(nm)也就是对于每一个物品,我们只能够对dp数组进行一次遍历,并且不能枚举取几个物品或者说是,要在每一个状态下O(1)的找到取不同数量物品的最优解,并转移我们可以发现,其实转移的区间是非常有规律的,f[j]只能够从f[j-v[i]],f[j-2*v[i]]....f[j-c[i]*v......
  • 辨析二维对称矩阵压缩存储
    一、从0开始的二维数组1.如果压缩成上三角,则i,j对换即可。二、从1开始的二维数组2.如果压缩成上三角,则i,j对换即可。三、总结因此做题时一定要,先考虑二维数组与一维数组是从0还是从1开始。再考虑是下三角储存还是上三角存储,因此有四种可能性。根据选项一一排除即......