首页 > 其他分享 >动态规划 背包问题

动态规划 背包问题

时间:2024-03-10 19:22:05浏览次数:35  
标签:初始化 背包 value 物品 载重 动态 规划 dp

分类:01背包  完全背包

01: 多个物品,每个只有一个,物品有 weight 和value。背包载重有限制,问最多能放多少;

完全:多个物体,每个有无数个

dp[i][j] 的含义:在【0,i】这么多物品中,放入载重为 j 的背包内的最大价值。

物品/载重 载重0 载重1 载重2 载重3
物品0        
物品1        
物品2        
物品3        

 

递推式:dp[ i ] [ j ]= max( dp[ i-1 ] [ j -weight [ i ] ] + value[ i ] , dp[ i-1 ] [ j ]  )  -----  只与目标格的正上方以及左上方有关,所以初始化第一行和第一列, 其他的可以初始化为0;

初始化:只用初始化第一行,方法for (weight小于bagweight 则初始化为value)其他的初始化为多少都行,为方便初始化为0;

表格内填的是value;

 

标签:初始化,背包,value,物品,载重,动态,规划,dp
From: https://www.cnblogs.com/wzzz-blogs/p/18064609

相关文章

  • FFmpeg开发笔记(四)FFmpeg的动态链接库介绍
    FFmpeg不仅提供了ffmpeg、ffplay和ffprobe三个可执行程序,还提供了八个工具库,使得开发者能够调用库里面的函数,从而实现更精准的定制化开发需求。这八个库的名字是avcodec、avdevice、avfilter、avformat、avutil、postproc、swresample、swscale,下面分别对这些库展开介绍。更多详细......
  • 通达信筹码资金动态指标公式源码
    {通达信筹码资金动态指标公式源码}XA_1:=COST(0.1);XA_2:=COST(99.900002);XA_3:=(XA_2-XA_1)/10;资金一:(WINNER(XA_1+XA_3)-WINNER(XA_1))*100;资金二:(WINNER(XA_1+XA_3*2)-WINNER(XA_1+XA_3))*100;资金三:(WINNER(XA_1+XA_3*3)-WINNER(XA_1+XA_3*2))*100;资金四:(WI......
  • 2024 年春节集训 _ 第一课 - 期望类型动态规划
    可能会用到的记号:\([P]=\begin{cases}1&(P成立)\\0&(P不成立)\end{cases}\)期望概率\(\texttt{dp}\)\(\texttt{dp}\)的变形当中最为简单易懂但是又思路又最为清奇。与之相关的难题数不胜数。考场上可以想出正解的都是超级神仙。粗浅的提一句,离散变量,也......
  • 2024 年春节集训 _ 第二课 - 数据结构优化动态规划
    【例题\(1\)】递增子序列\(\color{white}{link}\)考虑\(dp.\)\(dp[i][j]\)表示以元素\(i\)为结尾,长度为\(k\)的方案数。那么显而易见就有一个转移方程:\[dp[i][j]=\sum_{a[k]<a[i],\k<i}dp[k][j-1]\]先抛去第二维度的\(j\),这是可以做一个关于\(a[i]\)值的大......
  • 动态路由,通过id改变,改页面
    原理不清楚,记录一下效果点击哪个页面展示哪个路由中{path:"/news",name:"news",children:[{path:"/news/:id",------------------------------------------这里固定name:"newsId",-----------------------......
  • 代码随想录算法训练营第四十一天|01背包问题, 01背包问题—— 滚动数组,分割等和子集
    01背包问题,你该了解这些! 题目链接:46.携带研究材料(第六期模拟笔试)(kamacoder.com)思路:第一次遇到背包问题,好好记住吧。代码随想录(programmercarl.com)#include<bits/stdc++.h>usingnamespacestd;intmain(){intm,n;cin>>m>>n;vector<int>z(m);vec......
  • EasyExcel动态单元格合并(跨行或跨列)
    EasyExcel动态单元格合并(跨行或跨列)简单的合并单元格可以参照官网提供的@OnceAbsoluteMerge()和@ContentLoopMerge()两个注解进行@OnceAbsoluteMerge()注解只会合并一次就不再执行了动态相同值合并单元格代码示例(可以直接使用):先看结果:开启合并列行合并单元格,指定1......
  • 一本通 1270 混合背包 题解
    是在hydro上做的,墙裂推荐hydro的一本通题库!链接是:https://hydro.ac/d/ybttk/p/T1270。分析一下,可以分类讨论,处理的时候,零一背包(\(p_i=1\))一个,完全背包(\(p_i=0\))一个,多重背包(\(p_i>1\))一个,状态转移方程不用列的,直接去抄模板就可以啦~代码是这样的捏:#include<bits/st......
  • VOL表格动态添加操作按钮及弹窗确认方法
    VOL表格动态添加操作按钮及弹窗确认方法有好多方法,感觉这种方法最好,效果如下图代码如下onInit()://操作按钮this.columns.push({title:'操作',hidden:false,align:"cent......
  • VB.NET 在DataGridview 动态添加下拉列表控件DataGridViewComboBoxColumn要点两次才可
     DataGridview属性EditMode设为EditOnEnter 添加如下事件代码PrivateSubdgvZhiJianXiangMu_CellClick(ByValsenderAsSystem.Object,ByValeAsSystem.Windows.Forms.DataGridViewCellEventArgs)HandlesdgvZhiJianXiangMu.CellClickIfe.ColumnIndex>=0AndAls......