首页 > 其他分享 >dp-完全背包

dp-完全背包

时间:2024-07-20 16:50:54浏览次数:13  
标签:背包 max 复杂度 完全 times 枚举 转移 dp

解释

完全背包模型与 0-1 背包类似,与 0-1 背包的区别仅在于一个物品可以选取无限次,而非仅能选取一次。

我们可以借鉴 0-1 背包的思路,进行状态定义:设$f_{i,j}$ 为只能选前 i 个物品时,容量为 j 的背包可以达到的最大价值。

需要注意的是,虽然定义与 0-1 背包类似,但是其状态转移方程与 0-1 背包并不相同。

过程

可以考虑一个朴素的做法:对于第 i 件物品,枚举其选了多少个来转移。这样做的时间复杂度是 O(n^3) 的。

状态转移方程如下:
$f_{i,j}=\max_{k=0}^{+\infty}(f_{i-1,j-k\times w_i}+v_i\times k)$
考虑做一个简单的优化。可以发现,对于 f_{i,j},只要通过 f_{i,j-w_i} 转移就可以了。因此状态转移方程为:f_{i,j}=\max(f_{i-1,j},f_{i,j-w_i}+v_i)
理由是当我们这样转移时,f_{i,j-w_i} 已经由 f_{i,j-2\times w_i} 更新过,那么 f_{i,j-w_i} 就是充分考虑了第 i 件物品所选次数后得到的最优结果。换言之,我们通过局部最优子结构的性质重复使用了之前的枚举过程,优化了枚举的复杂度。

标签:背包,max,复杂度,完全,times,枚举,转移,dp
From: https://www.cnblogs.com/mcr130102/p/18313385

相关文章

  • Javascript 在我的本地服务器上运行,但在 WordPress 上不起作用
    大家好,我有一个问题。我有一个在本地服务器中完美运行的模板/主题,但是当我将其移动到Wordpress时,根据我的研究,我得到了“jQuery不兼容”的信息。 我附上了代码的图像。你能帮我一下吗,一切看起来都很完美,在我看来一切都很完美,但在Wordpress中却不然。提前谢谢你!......
  • 数位 DP
    数位\(dp\)大多使用高位计算的时候使用低位计算后的结果,从而做到优化效率[ZJOI2010]数字计数题目描述给定两个正整数\(a\)和\(b\),求在\([a,b]\)中的所有整数中,每个数码各出现了多少次。保证\(1\lea\leb\le10^{12}\)。求解策略第一种方法-递推法定义\(dp_i......
  • Docker部署wordpress-6.6
    目录一.环境准备二.准备对应的配置文件三.编写Dockerfile四.构建镜像五.配置MySQL 六.安装wordpress 七.扩展一.环境准备localhost192.168.226.25rocky_linux9.4Dockerversion27.0.3关闭防火墙和selinux,进行时间同步。安装docker#step1:安装必......
  • 预设型DP
    DP搬运工1Description给你n,k,求有多少个1到n的排列,满足相邻两个数的max的和不超过k。InputFormat一行两个整数n,k。OutputFormat一行一个整数ansans表示答案\(\text{mod998244353}\)。Sample样例输入1410样例输出116样例输入21066样例输出2198......
  • SharedPreferences 和 MMKV 是何方神圣
    一、概述SharedPreferences和MMKV都是Android平台保存本地数据的工具,用于保存一些常用配置。二、SharedPreferences1.类似Map集合,将Key-Value对存储于硬盘上的XML文件,以XML文件的形式保存在/data/data/包名/shared_prefs目录下。数据较多时会有性能问题。2.SharedPrefe......
  • dp-01背包
    01背包问题是动态规划中的一个经典问题,通常用于解决资源分配问题。问题描述如下:假设有一个背包,其最大承重为$W)。同时,有$n)个物品,每个物品有一个重量$w_i)和一个价值$v_i)。目标是选择一些物品放入背包,使得在不超过背包承重的前提下,背包中物品的总价值最大。问题......
  • 【MATLAB源码-第149期】基于MATLAB的2ASK,2FSK,2PSK,2DPSK等相干解调仿真,输出各节点波
    操作环境:MATLAB2022a1、算法描述2ASK(二进制幅移键控)、2FSK(二进制频移键控)、2PSK(二进制相移键控)和2DPSK(二进制差分相移键控)是数字调制技术中的基本调制方式,它们在无线通信、数据传输等领域有着广泛的应用。相干解调是这些调制方式中一个重要的解调技术,它要求接收端的本地振......
  • windows远程桌面打开rdp 调用显卡
    -----------------------------------------------------------------------------------------------------------前情提要:服务器在公网环境,带宽只有30M。远程桌面多开玩游戏,设置RDP服务端使用GPU。压缩传输带宽避免造成卡顿。如果是内网,也可以用,还可以提供一个注册表键值,修......
  • 【稳定检索】2024年数据处理与人工智能国际会议(ICDPAI 2024)
    2024年数据处理与人工智能国际会议2024InternationalConferenceonDataProcessingandArtificialIntelligence【1】会议简介        2024年数据处理与人工智能国际会议是数据处理和人工智能领域的一次重要盛会。会议旨在通过全球范围内专家学者的深入交流,探......
  • socket 收发TCP/UDP
    一、c++个人测试记录,有问题还请指出,谢谢参考:C++开发基础之网络编程WinSock库使用详解TCP/UDPSocket开发_c++udp使用什么库-CSDN博客代码中Logger测试见文章: c++中spdlog的使用/python中logger的使用-CSDN博客1、main.cpp收发TCP信号:#include<iostream>#include<thr......