18705 01背包问题

news2024/9/19 22:14:29

### 分析
这是一个典型的0/1背包问题。我们需要在有限的背包容量下,选择若干物品,使得获得的总价值最大。可以使用动态规划来解决这个问题。

### 伪代码
1. 定义一个一维数组`dp`,其中`dp[j]`表示容量为`j`的背包能获得的最大价值。
2. 初始化`dp[0]`为0,表示容量为0时价值为0。
3. 遍历每一个物品,对于每一个物品,遍历背包容量,从高到低更新`dp`数组。
4. 如果当前物品的重量小于等于当前背包容量,则更新`dp`数组。
5. 最后,`dp[M]`即为背包容量为M时能获得的最大价值。

### 代码

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int knapsack(int M, int N, vector<int>& W, vector<int>& C) {
    vector<int> dp(M + 1, 0);

    for (int i = 0; i < N; ++i) {
        for (int j = M; j >= W[i]; --j) {
            dp[j] = max(dp[j], dp[j - W[i]] + C[i]);
        }
    }

    return dp[M];
}

int main() {
    int M, N;
    cin >> M >> N;
    vector<int> W(N), C(N);
    for (int i = 0; i < N; ++i) {
        cin >> W[i] >> C[i];
    }
    cout << knapsack(M, N, W, C) << endl;
    return 0;
}


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2056100.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32的相关简单介绍

一、什么是STM32 STM32是ST公司设计的一系列以ARM Cortex-M为核心的32位微控制器 ST公司&#xff0c;即意法半导体集团(STMicrolectronics,简称ST)&#xff0c;1987年成立。由意大利的SGS微电子公司和法国Thomson半导体公司合并而成。 在当下的32位微控制器中&#xff0c;STM…

系统主机加固的十个方法,教你做好主机加固

环境背景 随着全球数字化转型的加速&#xff0c;企业IT环境变得愈发复杂&#xff0c;服务器主机面临的安全威胁也日益多样化。无论是工业控制系统、企业内部网络、企业内部服务器&#xff0c;还是云计算环境&#xff0c;都可能成为网络攻击的目标。此外&#xff0c;随着“工业…

重构版:链动3+1创新裂变模式解析

链动31模式&#xff0c;作为一种创新的市场扩张策略&#xff0c;专注于通过产品的独特魅力驱动用户自主传播与裂变。与传统的链动21模式相比&#xff0c;它在结构上进行了重大革新&#xff0c;不再局限于传统的太阳线裂变方式&#xff0c;而是引入了四四复制的架构&#xff0c;…

【Python零基础】while循环和用户输入

文章目录 前言一、input()函数二、while循环三、使用while循环来处理列表和字典总结 前言 我们开发一个应用程序&#xff0c;目的都是为了解决最终用户的问题&#xff0c;针对用户界面输入的数据&#xff0c;按照用户期待的逻辑进行处理&#xff0c;得到用户想要的结果。本章将…

如何查看Squid的DNS缓存

使用squidclient mgr:ipcache命令查看Squid的DNS缓存记录 如果squid端口不是3128, 需要指定端口号, squidclient -p {port} mgr:ipcache # squidclient mgr:ipcache ... IP Cache Statistics: ... IP Cache Contents:Hostname Flg lstref TTL N(b)…

【排序算法】八大排序(上)(c语言实现)(附源码)

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;算法 目录 前言 写一串测试数据 交换两元素的函数 一、冒泡排序 二、选择排序 三、插入排序 四、希尔排序 程序全部代码 总结 前言 排序算法是计算机科…

【pwnable.kr】0x01-fd Writeup

题目描述 解法 Ubuntu连接靶机&#xff08;连不通的可以试一下proxychains&#xff09; ssh fdpwnable.kr -p2222scp命令拷贝下fd源码文件 scp -P2222 fdpwnable.kr:fd.c .查看源码 #include <stdio.h> #include <stdlib.h> #include <string.h> char bu…

解决k8s分布式集群,子节点加入到主节点失败的问题

1.问题情况 Master主节点在 使用 kubeadm init 成功进行初始化后&#xff0c;如下所示 Your Kubernetes control-plane has initialized successfully!To start using your cluster, you need to run the following as a regular user:mkdir -p $HOME/.kubesudo cp -i /etc/k…

spring全面详解-最全最详细的spring基本认识和入门使用

文章目录 Springspring概述1 Spring定义2 Spring核心3 Spring Framework的特点 入门案例1 环境要求2 构建工程2.1 构建子工程first-spring2.2 入门案例2.3 对象存储 IoC容器1 控制反转IoC2 依赖注入DI3 IoC容器实现4 基于XML管理bean4.1 环境准备4.2 获取bean方式4.3 基于sette…

【微信小程序】自定义组件 - behaviors

1. 什么是 behaviors 2. behaviors 的工作方式 3. 创建 behavior 调用 Behavior(Object object) 方法即可创建一个共享的 behavior 实例对象&#xff0c;供所有的组件使用&#xff1a; 4. 导入并使用 behavior 5. behavior 中所有可用的节点 6. 同名字段的覆盖和组合规则* 关…

C++学习笔记----4、用C++进行程序设计(一)---- 什么是面向对象的程序设计

也许你看到这个题目的时候&#xff0c;就觉得这篇博文不用看了&#xff0c;难道这就是题目劝退了观众。我看到过一些程序&#xff0c;是由面向过程的传统程序修改过来了&#xff0c;只是将原来的函数变成了类的成员函数&#xff0c;其他几乎没有什么变化&#xff0c;可以说是换…

使用一致性哈希解决哈希分片负载均衡的扩展性问题

声明&#xff1a;本文的图全部源于&#xff1a;小林coding 上来咱先说&#xff0c;一致性哈希是应对分布式系统的算法 假设有一个负载均衡问题&#xff0c;也就是大批流量来请求&#xff0c;那怎么分配这些流量&#xff1f; 随机&#xff1f;还是挨个轮询&#xff1f; 这都…

文心快码帮你解大厂面试题:在给定两个不定长的单向链表,如何实现两个链表的加和?

【大厂面试真题】系列&#xff0c;带你攻克大厂面试真题&#xff0c;秒变offer收割机&#xff01; ❓今日问题&#xff1a;Java G1 GC中&#xff0c;region是什么意思&#xff1f;有哪些不同的region类型&#xff1f; ❤️一起看看文心快码Baidu Comate给出的答案吧&#xff01…

java 重新认识重载与重写

一、概念 1、重载&#xff08;Overloading&#xff09;: 是指在同一个类中&#xff0c;可以有多个同名方法&#xff0c;但这些方法的参数类型、参数个数、参数顺序至少有一个不同。返回类型可以相同也可以不同。每个重载的方法都需要有一个独特的参数类型列表。 2、 重写&#…

35岁被裁员,难道是程序员的结局吗?

声明&#xff1a;此篇为 ai123.cn 原创文章&#xff0c;转载请标明出处链接&#xff1a;https://ai123.cn/2179.html 作为一名35岁的Java工程师&#xff0c;技术更新快得就像坐火箭一样&#xff0c;咱们的技术可能一不留神就落伍了。再加上年纪大了&#xff0c;体力可能跟不上挑…

AMD加大资金布局,全力追赶英伟达

AMD正在加紧布局&#xff0c;以缩小与AI芯片领域领军者英伟达的差距。随着AI技术的飞速发展&#xff0c;AMD近日宣布了一笔重磅收购计划&#xff0c;这家芯片巨头正加速进入AI硬件市场&#xff0c;希望通过此次收购进一步扩大市场份额。 49亿美元收购ZT Systems 本周&#xff…

CUDA-MODE课程笔记 第7课: Quantization Cuda vs Triton

我的课程笔记&#xff0c;欢迎关注&#xff1a;https://github.com/BBuf/how-to-optim-algorithm-in-cuda/tree/master/cuda-mode CUDA-MODE课程笔记 第7课: Quantization Cuda vs Triton 适配课件详细解读 作者课件可以在这里找到&#xff1a;https://github.com/cuda-mode/l…

前端宝典十:webpack性能优化最佳实践

Webpack 内置了很多功能。 通常你可用如下经验去判断如何配置 Webpack&#xff1a; 想让源文件加入到构建流程中去被 Webpack 控制&#xff0c;配置 entry&#xff1b;想自定义输出文件的位置和名称&#xff0c;配置 output&#xff1b;想自定义寻找依赖模块时的策略&#xff…

上门预约O2O系统源码开发

随着互联网技术的飞速发展&#xff0c;O2O&#xff08;Online To Offline&#xff09;模式已成为连接线上与线下的重要桥梁&#xff0c;尤其在同城服务领域展现出了巨大的潜力。上门预约服务作为O2O模式的一种典型应用&#xff0c;正逐渐改变着人们的生活方式。 一、O2O模式概述…

Spring Boot发送邮件带附件功能怎么实现?

SpringBoot发送邮件带附件的步骤&#xff1f;如何优化Spring性能&#xff1f; 发送电子邮件是一个常见的需求&#xff0c;而随着业务需求的增加&#xff0c;发送带有附件的邮件变得尤为重要。AokSend将探讨如何在Spring Boot中实现发送邮件并附加文件的功能。 Spring Boot发送…