首页 > 其他分享 >0-1背包问题

0-1背包问题

时间:2024-12-21 12:41:49浏览次数:4  
标签:背包 int 问题 件物品 stuff dp define

0-1背包问题

问题描述

有\(N\)件物品和一个容量是\(V\)的背包。每件物品只能使用一次。

第\(i\)件物品的体积是\(v_i\),价值是\(w_i\)。

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

输入格式:

第一行两个整数\(N\),\(V\)用空格隔开,分别表示物品数量和背包容积。\(0<N\),\(V\leq1000\)

接下来有\(N\)行,每行两个整数\(v_i,w_i\)用空格隔开,分别表示第 \(i\) 件物品的体积和价值。\(0<v_i,w_i\leq1000\)

输出格式:

输出一个整数,表示最大价值。

测试样例

Sample Input
4 7
1 2
2 4
3 4
4 5
Sample Output
11

问题分析

参考代码

#include<bits/stdc++.h>
using namespace std;
#define MAXN 1005
#define w first
#define v second

int N,V;
vector<pair<int,int> > stuff(MAXN);
int res=0;

vector<int> dp(MAXN);

void getMaxValue(){
    for(auto &it:dp) it=0;//初始化数组

    for(int i=1;i<=N;i++){
        for(int j=V;j>=0;j--){
            if(j>=stuff[i].v) dp[j]=max(dp[j],dp[j-stuff[i].v]+stuff[i].w);
            else break;//装入物品
        }
    }
}

int main(){
    cin>>N>>V;
    for(int i=1;i<=N;i++)
        cin>>stuff[i].v>>stuff[i].w;
    getMaxValue();
    cout<<dp[V]<<'\n';
        return 0;
}

复杂度分析

时间复杂度分析

空间复杂度

标签:背包,int,问题,件物品,stuff,dp,define
From: https://www.cnblogs.com/wzu-hqj/p/18620637

相关文章

  • mathjax 动态渲染 typeset问题
    使用mathjax渲染数理化公式,静态正常,动态内容出现问题,简单解决如下。<!DOCTYPEhtml><html><head><metacharset="utf-8"><scriptid="MathJax-script"asyncsrc="/wwwroot/lib/mathjax/es5/tex-chtml-full.min.js&quo......
  • 【深度学习-环境篇】安装pytorch的全流程,跟着做就没问题
    文章目录打开任务管理器,看一下自己显卡的型号再到维基百科上查一下自己显卡的算力根据算力找到支持的cudaruntime版本看自己的cudadriver版本最终确定我们适用的cudaruntimeversion去pytorch官网找对应的版本进行安装在安装之前,我们先做一个别的事安装py......
  • 关于 VMware 与 WSL 在 Win11 虚拟化的一些问题
    关于VMware与WSL在Win11虚拟化的一些问题VMware虚拟化问题之前用虚拟机做计网GNS3组网实验的时候需要用到虚拟机虚拟化,然后一直显示虚拟化不成功,检查过BIOS等设置均显示没有错误。后来发现是Windows自带的虚拟机功能与VMware的虚拟化功能产生了冲突,处理办法如下......
  • 偏序问题
    偏序问题就是一个元素有若干属性,然后统计所有属性都有序的数对个数。对于此类问题,思路是先消到一维,再统计答案。1、二位偏序例题:逆序对其实在开始\(i<j\)这一维度就已经排好序了,现在剩下\(a_i\)这一维,发现可以对树状数组上\(a_i\)这个点加一,\(query(a_i)\)就是\(j<......
  • 1v1视频软件源码,如何优化快速排序算法低效问题?
    1v1视频软件源码,如何优化快速排序算法低效问题?快速排序快速排序也遵循分治的思想,它与归并排序不同的是,快速排序是原地排序,而且快速排序会先排序当前数组,再对子数组进行排序,它的算法步骤如下:1、哨兵划分:选取数组中最左端元素为基准数,将小于基准数的元素放在基准数左边,将......
  • 关于stm32f407 cherryusb初始化失败“This dwc2 version does not support dma mode,
    初学cherryusb,照着论坛帖子操作,将cherryusb软件包加入到407工程,编译完成后,下载,出现如下问题:[I/USB]dwc2has1channelsanddfifodepth(32-bitwords)is0[E/USB]Thisdwc2versiondoesnotsupportdmamode,sostopworking通过反复确认,各种定位尝试,最终发现是usb模......
  • 小球天平称重问题(python求解版本)
    Problem:这是一个经典的称重问题:有12个球,其中11个重量相同,1个球重量不同(可能更重或更轻),要求设计一种策略,用尽可能少的天平称重次数找出这个不同的球,并判断它是更重还是更轻。SolutionStep: 可以通过分治法来解决这个问题。每次将球分成多个组,通过比较各个组的重量来确......
  • Hexo Next主题本地搜索功能不可用问题解决
    个人博客地址:HexoNext主题本地搜索功能不可用问题解决|一张假钞的真实世界。按照Next主题官网配置步骤(LocalSearch)配置后,站点的“搜索”菜单点击无响应。查看Next主题源代码({Next主题根目录}/hexo-theme-next/layout/_partials/search/index.njk),发现站点优先使用Algolia......
  • PortQry 命令行端口扫描程序版本 2.0 下载 PortQryV2.exe,这是一个命令行实用程序,可
    从Microsoft下载中心下载PortQry命令行端口扫描程序版本2.0---DownloadPortQryCommandLinePortScannerVersion2.0fromOfficialMicrosoftDownloadCenter使用PortQry命令行工具-WindowsServer|MicrosoftLearn 什么是PortQry?PortQry是一款由微软开......
  • 2024 GoLang安装使用教程(附激活以及常见问题处理)
    第一步:下载GoLang安装包访问GoLang官网,下载GoLang第二步:安装GoLang下载完成后,进行安装,next,安装完成点击xx关掉程序!第三步:下载补丁GoLang补丁文件点击获取补丁下载成功后,打开标注的文件文件夹,进入到文件夹/jetbra注意:这个文件夹单独copy一份,所属文件夹......