首页 > 其他分享 >01背包问题

01背包问题

时间:2024-08-16 21:25:22浏览次数:14  
标签:输出 01 cout int 件物品 问题 ii 背包

有 NN 件物品和一个容量是 VV 的背包。每件物品只能使用一次。

第 ii 件物品的体积是 vivi,价值是 wiwi。

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

输入格式

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

接下来有 NN 行,每行两个整数 vi,wivi,wi,用空格隔开,分别表示第 ii 件物品的体积和价值。

输出格式

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

数据范围

0<N,V≤10000<N,V≤1000
0<vi,wi≤10000<vi,wi≤1000

输入样例
4 5
1 2
2 4
3 4
4 5
输出样例:
8
//朴素
#include <iostream>
using namespace std;
const int N=1010;
int v[N],w[N];
int f[N][N];
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++)   cin>>v[i]>>w[i];
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            if(j<v[i])  f[i][j]=f[i-1][j];
            if(j>=v[i]) f[i][j]=max(f[i-1][j],f[i-1][j-v[i]]+w[i]);
        }
    }
    cout<<f[n][m];
}

标签:输出,01,cout,int,件物品,问题,ii,背包
From: https://blog.csdn.net/black_blank/article/details/141269776

相关文章

  • 四、Ubuntu安装Vivado2019.1
    Windows下Vivado编译比较慢,工程量较小时还体现不出来,当工程很大时Windows下编译比linux下慢很多,因此这里使用一台Ubuntu实体机安装Vivado2019.1进行编译。1.将下载好的Vivado安装包放在Ubuntu中的某一文件夹:2.完成后右键安装包,点击ExtractHere进行解压:3.解压完成后进......
  • 用户主组与附加组权限累加问题详解
    用户主组与附加组权限累加问题详解先看结论:结论:用户主组与附加组的权限关系为累加关系,当用户尝试访问文件或目录时,系统会按以下顺序检查权限:检查文件属主的权限:如果用户是文件的属主,系统使用属主权限进行判断。检查用户的所有组的权限:如果用户不是文件的属主,但用户属于......
  • [题解] [HNOI2016] 序列
    原题链接题面给定长度为$n$的序列:$a_1,a_2,\cdots,a_n$,记为\(a[1\colonn]\)。类似地,\(a[l\colonr]\)($1\leql\leqr\leqN$)是指序列:$a_{l},a_{l+1},\cdots,a_{r-1},a_r$。若\(1\leql\leqs\leqt\leqr\leqn\),则称$a[s\colont]$是$a[......
  • 计算1~n的和题解(Mars OJ P1016)
    在这儿问一下,有人用MarsOJ的吗?有的话,评论区里回复一下,谢谢。好了切入正题题目:说明给出正整数n(1<=n<=10⁶),计算1到n的和输入格式一行一个正整数(1<=n<=10⁶)输出格式一行一个整数,表示1到n的和样例 输入数据13输出数据16这题考的时循环,把1~n跑......
  • 简单的linux系统学习笔记——01
    一、准备环境1.创建虚拟主机软件:vmware(是一个管理虚拟机的平台)vmware官网流程:1.点击创建新的虚拟机2.选择自定义3.兼容选最大4.选稍后安装操作系统5.选择想创建的系统6.命名,选择位置(保存位置)7.选择cpu和内存配置8.选nat模式9.选推荐10.创建新的虚拟磁盘11设置磁......
  • vmware 异常问题踩坑和解决方式汇总(完善中)
    linux虚拟机克隆之后网络冲突怎么办1.修改mac地址(vmware虚拟机克隆之后自动生成新的mac地址)2.修改IP3.删掉设备管理器下的70-persistent-net.rules文件,此文件删除重启后会自动生成.rm-rf/etc/udev/rules.d/70-persistent-net.rules4.reboot重启解决没有vmwaretools的问......
  • Git 命令大全:详细讲解与常见问题解决方案
    目录1.Git基础命令2.分支管理命令3.远程仓库管理命令4.标签管理命令5.其他常用命令6.总结Git是目前最流行的分布式版本控制系统,它使得团队协作和代码管理变得更加高效。本文将详细介绍Git的常用命令及其应用场景,并针对可能遇到的问题提供解决方案。1.Git......
  • P4653 [CEOI2017] Sure Bet
    上链接[CEOI2017]SureBet题目描述现在有$n$个A类灯泡和$n$个B类灯泡,每个灯泡都有各自的权值。我们将这些灯泡分为$n$组,每组包含一个来自A类的灯泡和一个来自B类的灯泡。你可以从中选取任意个灯泡,每选取一个灯泡需要花费$1$的代价。在你选取完之后,系统会随机在A类......
  • 20240110 windows安装make工具
    从https://sourceforge.net/projects/mingw/下载文件并安装安装后打开MinGW,依次选择如下3个红框的包,右键“Markforinstallation”勾选需要安装的包后,执行“installation/ApplyChanges”将c:\MinGW\bin\ming32-make.exe重命名为c:\MinGW\bin\make.exe将MinGW的......
  • JS中构造函数继承问题注意事项总结
    在JavaScript中,继承是通过原型链来实现的。当你想要创建一个子类(比如Student)继承一个父类(比如Person)时,通常会使用Object.create来创建Student的原型对象。这背后有一些重要的原因:1.共享与独立性当你执行Student.prototype=Person.prototype时,Student的原型......