
动态规划
文章平均质量分 81
动态规划python算法
sml_5421
错题集
展开
-
【笔记】二维DP
通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号。其中,0原创 2024-09-12 09:20:20 · 1479 阅读 · 0 评论 -
【笔记】一维动态规划DP
共有N级台阶,从第0级出发,每次可以迈1阶或者2阶,但是楼梯上的第a1、a2、a3…在一条直线上的n个空位放置若干个油桶,每2个油桶之间需间隔k个空位,有多少种放油桶的方式?最优子结构:大问题的最优解包含小问题的最优解,通过小问题可以推导出大问题。楼梯有n个台阶,每次可以一步上1阶或者2阶,一共有多少种不同的上楼方法?,我们不能踩这个台阶,那么对于第i+1个台阶的方案数就不包含。这题和上面的例题的差别在于多出了坏掉的台阶,用一个数组。第二行:包含M个正整数,表示坏掉的台阶编号。动态规划用于解决具有。原创 2024-09-12 08:29:51 · 1247 阅读 · 0 评论 -
动态规划-背包问题-分组背包
容积为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 · 322 阅读 · 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 · 1171 阅读 · 1 评论