动态规划
文章平均质量分 72
ResCells
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
动态规划之背包才是万恶之源(CF E. K Balanced Teams)
个物品放入前面一个组里面,只有这两种情况需要考虑,满足了不漏的原则(因为如果放入的话极差可能会变化,可能需要新的一个组,导致最终的人数减少);接下来我们来看看这道题是如何转化成01背包的思考方式的;有了这个dp数组的定义之后,我们就可以考虑怎么转移了:在01背包中,我们考虑转移是从是否把第。对于01背包我们是怎么设计dp数组的呢–>dp[i, j]:表示只考虑前i个物品,物品总体积。就因为这个不超过,很容易联想到背包问题的思考方式;个物品放入背包中,那么在这道题,其实也可以用类似的方式考虑,即是否把第。原创 2024-10-19 11:27:01 · 761 阅读 · 0 评论 -
完全背包问题代码细节
其实完全背包问题可以看成是每个物品都有k个的01背包问题,这样就有了朴素的完全背包问题的做法;想必到这里读者应该可以明白为什么了吧:每次都把最大值赋给f[i][j],这样最后得到的结果就和表达式相同了;这里的降维优化其实和01背包的是一个东西,都是利用滚动数组的特性,但是和01背包的又有一点不太一样;的时候,及时就相当于01背包的这一行代码了,然后再不断地和。–>为什么01背包有一个。发现多重背包就可以从正面枚举到后面,比较大小,这样就实现了上述表达式;其实是这样的:当完全背包的。是从后面往前面枚举的,原创 2024-10-02 10:43:16 · 416 阅读 · 0 评论 -
最长上升子序列解法及其优化
那为什么这张图是单调上升(即q[i, j] > q[i - 1, j])的呢,别急,这里给出证明:若q[i]原创 2024-10-07 23:18:46 · 408 阅读 · 0 评论 -
01背包变种之完全装满问题
这里有一种很巧妙的处理方式,即把不能刚好填满背包的值赋为-INF(即标记为无效的状态),例如dp[1][0] = 0而不是-INF,因为其确实填满了背包;这样处理过后,我们只需要判断。是否大于0即可判断是否能填满背包并且得到能填满背包所有价值的最大值了;那如果把条件换成:求背包刚好装满的时候的最大值,阁下又该如何应对;是有效的,说明背包能恰好背装满且有最大值;关于01背包,其实就很简单了,可以看看我的另一篇文章。综上所述,当求出来所有的状态之后,若。原创 2024-10-09 11:08:41 · 350 阅读 · 0 评论 -
动态规划之合唱队形
其实这道题和最长上升子序列和导弹拦截这类题目都有一个共同点:就是要求一个最长的单调序列,这个序列可能是严格单调也可能不是,但最后都是单调,所以最后可以转化成一道线性dp的模版题–>最长上升子序列,就是两个循环嵌套就解决了;原创 2024-10-11 00:09:33 · 258 阅读 · 0 评论 -
P4310 绝世好题(带位运算的DP)题解
这个时候,我们还要再进行一步操作,把所有位上位1的数更新成k,为什么呢?是否满足条件的所有子序列的集合,其中数组存储的值就是子序列长度的。的数字,那么dp数组可以设计成二维的。,那么就可以接上前面的同样该位为。那么我们该如何考虑转移呢?为1,那么他一定可以接上前面的第。但是我们最终不只是仅仅考虑第。个数字结尾,并且只考虑。位同样为1的数字,所以。原创 2024-10-19 00:48:54 · 449 阅读 · 0 评论 -
动态规划----背包问题(完全背包问题)
有N种物品和一个容量为V 的背包,每种物品都有无限件可用。放入第i种物品的耗费的空间是Ci,得到的价值是Wi。求解:将哪些物品装入背包,可使这些物品的耗费的空间总和不超过背包容量,且价值总和最大。...原创 2022-08-15 16:58:52 · 341 阅读 · 0 评论 -
动态规划----背包问题(01背包问题)
辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。其实理解了以后就很简单,这里通过列表的方法来帮助理解AWA。)的整数,分别表示采摘某株草药的时间和这株草药的价值。输出在规定的时间内可以采到的草药的最大总价值。.......原创 2022-08-15 11:35:36 · 149 阅读 · 0 评论
分享