![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
提高篇——动态规划
晴空_万里
条条框框框住的是行为,而不是大脑。
展开
-
最长回文子串——动态规划入门
如果说图论多敲敲代码,还是可以理解的,那么动态规划就是靠智商了= =目前除了背包问题,其他都似懂非懂。。遇到问题估计只有套模板了……《算法笔记》P436代码:#include <stdio.h>#include <string.h>const int maxn = 1010;char S[maxn];int dp[maxn][maxn];int mai...原创 2020-02-17 18:50:59 · 84 阅读 · 0 评论 -
最长公共子序列LCS
《算法笔记》P434问题描述:给定两个字符串(或数字序列)A和B,求一个字符串,使得这个字符串是A和B的最长公共部分(子序列可以不连续)如:s a d s t o r ya d m i n s o r r y公共子序列为: a d s o r y,长度为6注意点:1、dp[i][j]表示字符串A的i号位和字符串B的j号位之前的LCS长度(下标从1开始)2、若A[i] == B[j...原创 2020-02-16 15:06:20 · 126 阅读 · 0 评论 -
最长不下降子序列LIS——动态规划入门
最长不下降:也就是相同或增加序列的元素个数但这里要注意一个问题,如果想同时知道最长不下降的这个序列有哪些元素,该怎么处理?《算法笔记》P432代码:#include <stdio.h>#include <algorithm>using namespace std;const int N = 100;int A[N],dp[N];int main(){ ...原创 2020-02-12 17:56:25 · 178 阅读 · 0 评论 -
最大连续子序列和——数据规划入门
最大连续子序列和问题如下:给定一个数字序列:A1,A2,******,An,求i,j(1<=i<=j<=n)使得Ai+***Aj最大,输出这个最大和。样例:-2 11 -4 13 -5 -2易知11 -4 13和最大为20这种问题的状态转移方程是无后效性的:当前状态记录了历史信息,一旦当前状态确定,就不会再改变,且未来的决策只能在已有的一个或若干个状态的基础上进行,历史...原创 2020-02-11 12:42:48 · 113 阅读 · 0 评论 -
数塔问题——动态规划入门
输入一组数塔,求解怎样使总数和最大从最底层的各位置dp值开始,不断往上求出每一层各位置的dp值,最后就会得到dp[1][1],即为想要的答案。递推写法的计算方式是自底向上,即从边界开始,不断向上解决问题,直到解决了目标问题;而使用递归写法的计算方式是自顶向下,即从目标问题开始,将它分解成子问题的组合,直到分解至边界为止。《算法笔记》P428代码:#include <stdio.h&...原创 2020-02-11 12:06:42 · 211 阅读 · 0 评论 -
优化的求第n个斐波那契数——动态规划引例
斐波那契数列若反复重复计算,会产生很多重复的计算,若将每次的计算结果使用dp数组储存起来,若计算过,则调用数组,返回结果,则会大大提高效率。一个问题必须拥有重叠子问题,才能使用动态规划去解决。这个例子可以看出计算效率上的差异还是蛮大的:代码:#include <stdio.h>#include <string.h>using namespace std;in...原创 2020-02-11 11:35:55 · 379 阅读 · 0 评论 -
背包问题——完全背包问题
完全背包问题的叙述如下:有n种物品,每种物品的单件重量为w[i],价值为c[i],现有一个容量为V的背包,问如何选取物品放入背包,使得背包内物品的总价值最大。其中每种物品都有无穷件。完全背包问题的核心代码:for(int i = 1;i <= M;i++){ for(int j = tm[i];j <= T;j++){ //正序,完全背包问题 dp[...原创 2020-02-11 10:04:39 · 576 阅读 · 0 评论 -
背包问题——01背包
01背包问题情境:有n件物品,每件物品的重量为w[i],价值为c[i],现有一个容量为V的背包,问如何选取物品放入背包,使得背包内物品的总价值量最大,其中每种物品都只有一件核心代码:(要注意这里是逆序枚举的)for(int i = 1;i <= n;i++){ for(int v = V;v >= w[i];v--){ //状态转移方程 dp[v] = max(...原创 2020-02-10 22:01:17 · 148 阅读 · 0 评论