当前位置: 首页 > article >正文

2. 01背包问题

文章目录

  • Question
  • Ideas
  • Code

Question

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

第 i
件物品的体积是 vi
,价值是 wi

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

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

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

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

数据范围
0<N,V≤1000

0<vi,wi≤1000
输入样例
4 5
1 2
2 4
3 4
4 5
输出样例:
8

Ideas

Code

#include <iostream>

using namespace std;
const int N = 1010;
int f[N];
int w[N], v[N];

int main()
{
    int n, m;
    scanf("%d%d", &n, &m);
    
    for (int i = 1; i <= n; i ++) scanf("%d%d", &v[i], &w[i]);
    
    // f[0][0~m] = 0, f[0~n][0] = 0
    for (int i = 1; i <= n; i ++)
    {
        for (int j = m; j >= v[i]; j --)
        {
            f[j] = max(f[j], f[j-v[i]]+ w[i]);
        }
    }
    
    printf("%d", f[m]);
    
    
    return 0;
}

http://www.kler.cn/a/3341.html

相关文章:

  • 软件测试 —— jmeter(2)
  • ASP.NET Core 6.0 如何处理丢失的 Startup.cs 文件
  • 计算机网络之物理层
  • GS论文阅读--Hard Gaussian Splatting
  • OSCP - Proving Grounds - Quackerjack
  • 小游戏源码开发搭建技术栈和服务器配置流程
  • Python解题 - CSDN周赛第38期
  • 【机器学习基础 3】 sklearn库
  • 智能触摸面板开关一Homekit智能家居
  • ES6新增功能强大的运算符详解!!!写项目事半功倍!!!力荐!!!
  • 深入探索Android卡顿优化(上)
  • AD/DA转换(XPT2046)
  • [oeasy]python0116_文字的起源_苏美尔文明_楔形文字_两河流域
  • 【数据结构】二叉树及相关习题详解
  • SANGFOR 旧防火墙配置怎么导入新防火墙
  • 【Python】虚拟环境及在VS Code当中的使用
  • 线程池的讲解和实现
  • 图形视图界面 图形效果
  • 【数据结构】树的介绍
  • 用队列实现栈(图示超详解哦)
  • GPT-4发布,这类人才告急,大厂月薪10W+疯抢
  • LeetCode算法 打家劫舍 和 打家劫舍II C++
  • ChatGPT新进展GPT-4 模型介绍
  • 【数据结构与算法】 - 线性表详解 - (带头结点)单链表详细实现思路及代码
  • 基于51单片机的自动打铃打鸣作息报时系统AT89C51数码管三极管时钟电路
  • Week 14