
动态规划
文章平均质量分 77
介绍与动态规划相关的算法 C++实现
材料苦逼不会梦到计算机白富美
这个作者很懒,什么都没留下…
展开
-
状态压缩DP 树形DP 以及记忆化搜索
原题解链接:https://www.acwing.com/solution/content/15616/解释一下st[j | k] :已经知道st[]数组表示的是这一列没有连续奇数个0的情况,我们要考虑的是第i-1列(第i-1列是这里的主体)中从第i-2列横插过来的,还要考虑自己这一列(i-1列)横插到第i列的 比如 第i-2列插过来的是k=10101,第i-1列插出去到第i列的是 j =01000,那么合在第i-1列,到底有多少个1呢?自然想到的就是这两个操作共同的结果:两个状态或。原创 2024-11-23 19:27:39 · 447 阅读 · 0 评论 -
线性DP 区间DP C++
三角形内的某个点,可以从这个点的左上方或右上方来到这个点,因此有状态转移方程:f[i, j] = max(f[i - 1, j - 1] + a[i][j], f[i - 1][j] + a[i][j])题二 最长上升子序列假设题目给出了n个数,这n个数存在了a[N]中:其中f[i] 表示以a[i]为结尾的最长上升子序列的长度(位置也是独特的,假设a[N]中有多个相同的数,他们的f值也不一定相同!!),则如果现在在计算第i个数的f[i]值,且遍历到了第j个数(j <= i) 并且 a[i] > a[原创 2024-11-14 21:09:01 · 414 阅读 · 0 评论 -
动态规划—背包问题
动态规划中的背包问题,从最基础的01背包到分组背包等问题的解题思路与代码实现原创 2024-11-04 19:32:49 · 1203 阅读 · 0 评论