01背包-动态规划

news2024/11/16 18:47:44

01背包

在这里插入图片描述
在这里插入图片描述

易知状态转移方程为:
dp[i][j] = max(dp[i-1][j],dp[i-1][j-v[i]]+w[i])

代码

N,V = map(int,input().split())
v, w = [0],[0] # 体积v,价值w
for i in range(N):
    a = list(map(int,input().split()))
    v.append(a[0]) # 体积vi
    w.append(a[1]) # 价值wi
dp = [[0 for j in range(V+1)] for i in range(N+1)] # 创建二维列表并初始化为0,行为物品数量,列为背包容量

for i in range(1,N+1): # 物品数从0到N
    for j in range(1,V+1): # 背包容量从0到V
        dp[i][j]=dp[i-1][j] # 先不选
        if j>=v[i]: # 当背包容量大于某个物品体积时选择价值大的那个
            dp[i][j] = max(dp[i-1][j],dp[i-1][j-v[i]]+w[i])
print(dp[-1][-1])

从状态转移方程看,可以将二维数组dp优化为一维,每次更新第i行的状态值

代码

N,V = map(int,input().split())
v, w = [0],[0] # 体积v,价值w
for i in range(N):
    a = list(map(int,input().split()))
    v.append(a[0]) # 体积vi
    w.append(a[1]) # 价值wi
    
dp =[0 for i in range(V+1)] # 创建一维列表并初始化为0

for i in range(1,N+1):
    for j in range(V,v[i]-1,-1):
        dp[j]= max(dp[j],dp[j-v[i]]+w[i])
print(dp[-1])

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

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

相关文章

NO11 蓝桥杯单片机之DS18B20数字温度计

DS18B20数字温度计这个模块和以往单片机学习的模块可能不同,这里还要知道其头文件(.h)和.c文件代码的理解。 具体这个温度计是怎么实现检测温度的,呃呃呃呃呃这可能就要去查阅专业资料,涉及的知识体系应该很庞大&…

公众号软文怎么写?媒介盒子告诉你

公众号软文是指在微信公众号平台上发布的一种营销文章,旨在通过有针对性的内容和亲民易懂的语言吸引读者,提高品牌知名度和销售额。然而公众号软文想要写好需要一定的技巧,今天媒介盒子就来和大家聊聊。 一、 分析用户需求 文案是写给用户看…

【深度学习】图片预处理,分辨出模糊图片

ref:https://pyimagesearch.com/2015/09/07/blur-detection-with-opencv/ 论文 ref:https://www.cse.cuhk.edu.hk/leojia/all_final_papers/blur_detect_cvpr08.pdf 遇到模糊的图片,还要处理一下,把它挑出来,要么修复,要么弃用。否…

【数学】第十三届蓝桥杯省赛C++ A组/研究生组 Python A组/研究生组《数的拆分》(C++)

【题目描述】 给定 T 个正整数 ,分别问每个 能否表示为 的形式,其中 , 为正整数,, 为大于等于 2 的正整数。 【输入格式】 输入第一行包含一个整数 T 表示询问次数。 接下来 T 行,每行包含一个正整数 。 【输出格式】 对于…

CentOS 7 下安装RabbitMQ教程

CentOS 7 下安装RabbitMQ教程 一、做准备(VMWare 虚拟机上的 CentOS 7 镜像 上安装的) (1)准备RabbitMQ的安装包(rabbitmq-server-3.8.5-1.el7.noarch)下载地址mq (2)还得准备erl…

你的 Python 代码需要解释一下了!

Python 是一种相对简单的编程语言。它主要以解释型语言著称,这意味着每行代码都要通过解释器逐行执行。不过在某些时候,将 Python 代码翻译成计算机可以理解的内容,然后再逐行执行,可以减少繁琐。 在这种情况下,编译器…

日本EPSON 爱普生HUD汽车抬头显示系统芯片

目前HUD产品在新车上的配装率逐年上升,预计在2025年将达到30%。那么在介绍爱普生HUD整合方案之前,让我们先了解一下什么叫HUD。 HUD(Head Up Display)中文叫抬头显示系统,又被叫做平行显示系统。早被应用在飞机辅助…

2024游泳耳机哪个牌子好?分析测评四大热门游泳耳机

随着科技的不断发展,游泳耳机已经成为游泳爱好者们在水中畅游时的最佳伴侣。近年来游泳耳机市场涌现出了众多品牌和产品,让人眼花缭乱。为了帮助大家挑选到最适合自己的游泳耳机,我们特意对市面上四大热门游泳耳机进行了详细的分析测评&#…

【正点原子FreeRTOS学习笔记】————(13)队列集

这里写目录标题 一、队列集简介(了解)二、队列集相关API函数介绍(熟悉)三、队列集操作实验(掌握) 一、队列集简介(了解) 一个队列只允许任务间传递的消息为同一种数据类型&#xff…

【字节二面】SpringBoot可以同时处理多少请求

目录 一、示例代码二、那么springboot可以处理多少请求?三、maxConnections、maxThreads、acceptCount的关系 一、示例代码 RestController Slf4j public class RequestController {GetMapping("/test")public String test(HttpServletRequest request) …

飞书很好,但赢不了,只能裁员

心碎飞书 3 月 26 日,字节跳动旗下产品飞书的 CEO 谢欣发布全员信,正式宣布进行新一轮的组织调整,即裁员。 内部全员信如下: 我有不少朋友是在字节跳动,甚至就在 Lark 的。 同时我也因为会经常和一些平台的运营小伙伴有…

抖店被判无货源违规后该怎么办?避免这几项!开抖音小店无风险!

哈喽~我是电商月月 今天我们来聊一聊抖音小店被提示无货源风险后 商家怎么做,才能最大化挽回损失,以及后续如何避免的解决方案: 一.被判无货源的四个程度 1.收到平台提示:店铺存在无货源风险时 这个时候店铺基本就…

设置http响应报文

一、总结: (1)设置响应状态码: response.statusCode (2)设置响应状态描述: response.statusMessage() 使用的极少 (3)设置响应头信息: response.setHeader(头值,头名) (4)设置响应体: response…

个人或企业防止网络攻击的方法总结

个人或企业防止网络攻击的方法总结。 随着威胁形势的不断发展,建立全面的网络安全解决方案需要外围安全性和主动的网内防御 。随着网络攻击的范围,规模和频率不断增加,网络卫生正变得越来越重要。 与个人卫生相似,网络卫生是指旨…

文献速递:基于SAM的医学图像分割--SAMUS:适应临床友好型和泛化的超声图像分割的Segment Anything模型

Title 题目 SAMUS: Adapting Segment Anything Model for Clinically-Friendly and Generalizable Ultrasound Image Segmentation SAMUS:适应临床友好型和泛化的超声图像分割的Segment Anything模型 01 文献速递介绍 医学图像分割是一项关键技术,用…

阿里云部署宝塔,设置了安全组还是打不开。

1.在安全组是开放正确的端口好。8888要开,但是不只是开放8888,举个例子,https://47.99.53.222:17677/49706cf7这个,要开放17677这个端口号。 2.安全组要挂载到实例上,从三个点的进入点击管理实例,加到对应的…

对 Transformer 中位置编码 Position Encoding 的理解

目录 什么是位置编码 Position Encoding 一、将绝对位置编码加在 Transformer 的输入端 (Sinusoidal 位置编码或可学习位置编码) 二、将绝对位置编码乘在 q k v (RoPE 位置编码) 三、将相对位置编码加在注意力权重 (ALiBi 位置编码) 什么是位置编码 Position Encoding Tr…

wordcloud-1.9.2(1.9.3) for python 3.6/python3.X增强补丁

wordcloud-1.9.1开始无法在python3.6和海龟编辑器内正常使用,特做了一个whl 提供给python3.6使用。 另外我自己使用Python3.8 ,因此wordcloud-1.9.2-cp36-cp36-win_amd64.whl 和wordcloud-1.9.3-cp38-cp38-win_amd64.whl,词云图上有前20个单…

【2024.3.27练习】小朋友排队

题目描述 题目分析 该题的答案交换次数与冒泡排序算法的交换次数应该是相同的。由于冒泡排序的时间复杂度为,不适合本题的数据大小。所以我们需要一个更加高效的数据结构。 分析题目,思路每轮是将最小的数字交换至最前,该数字的交换次数即它…

P5507 机关

题目背景 Steve成功降落后,在M星上发现了一扇大门,但是这扇大门是锁着的 题目描述 这扇门上有一个机关,上面一共有12个旋钮,每个旋钮有4个状态,将旋钮的状态用数字1到4表示 每个旋钮只能向一个方向旋转&#xff08…