动态规划
文章平均质量分 73
动态规划python算法
sml_5421
错题集
展开
-
动态规划-背包问题-分组背包
容积为V的背包,放入N组物品,第i组物品有s[i]件,第i组第k件物品体积为w[i][k],价值为v[i][k]。每件物品最多拿一件,求体积不超过V条件下的最大价值。接下来N组数据每组:第一行输入一个整数s,表示数目;接下来s行包含两个整数w,v。dp[i][j]表示前i组物品,体积为j时的最大价值。枚举每组中的每个物品,取使价值达到最大的那一件。如何处理分组使得得到的价值最大?第一行:int N,int V。输出一个整数,表示最大价值。原创 2024-02-17 14:40:51 · 224 阅读 · 1 评论 -
动态规划-背包问题-完全背包
可见,更新dp[i][j]时,用的是同一行先前位置dp[i][j-w[i]]和上一行对应位置的dp[i-1][j],和01数组不同在于更新方向。使用单个数组更新时,采用从小到大的方向对dp数组进行覆盖。dp[i][j]表示前i种物品,体积为j时的最大价值。也就是说,每件物品可以拿0,1,…,完全背包中的每件物品有无数件。原创 2024-02-17 12:10:20 · 1033 阅读 · 1 评论