1.线性DP 2.背包DP 0/1背包中的将二维化为一维,需要倒序遍历,当前状态仅由i-1层状态而来。 现在终于理解了,因为我们将i这一维给去掉了,我们我们遍历i这一层的时候,由大到小遍历,大的(正在更新的)就是我们的第i层,但是前面1~j-1却还保留在了第i-1层上(因为其尚未被遍历更新信息,所以 ...
分类:
其他好文 时间:
2021-04-16 12:06:18
阅读次数:
0
简单动态规划:dp[i]是以位置i结束的最大和,动态转移方程dp[i] = max(dp[i-1]+array[i], array[i]),dp中的最大值即是结果。 class Solution { public: int FindGreatestSumOfSubArray(vector<int> ...
分类:
编程语言 时间:
2020-11-21 11:46:10
阅读次数:
5
551. 学生出勤记录 I 描述: 思路:字符串包含A的个数 和 是否包含“LLL” 552. 学生出勤记录 II 描述: 思路:动态规划。dp[0-n][0-1 A][0-1-2 L]。 状态转移根据题意分情况 添加P时候, 添加A的时候 L的时候。。 553. 最优除法 描述: 思路:题中说全部 ...
分类:
其他好文 时间:
2020-07-14 13:15:33
阅读次数:
42
问题: S代表原字符串,P代表模式串,包含* (匹配0或者多个)和?(匹配一个) 思路:动态规划 dp[i][j] 代表 S的前i个字符和P的前j个字符是否匹配, 最后返回dp[s.length()][p.length()] p[j-1]==* 则 dp[i][j] = dp[i-1][j] || ...
分类:
其他好文 时间:
2020-05-15 20:34:58
阅读次数:
77
https://www.cnblogs.com/grandyang/p/4298664.html 动态规划,dp[i][j]为true表示s1[i-1]可以与s3[i+j-1]匹配或s2[j-1]可以与s3[i+j-1]匹配 class Solution { public: bool isInter ...
分类:
其他好文 时间:
2020-04-28 15:32:04
阅读次数:
53
Problem Description 据说在很久很久以前,可怜的兔子经历了人生中最大的打击——赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州下沙某农业园卧薪尝胆潜心修炼,终于练成了绝技,能够毫不休息得以恒定的速度(VR m/s)一直跑。兔子一直想找机会好好得教训一下乌龟,以雪前耻。 最近 ...
分类:
其他好文 时间:
2020-04-25 12:32:04
阅读次数:
127
/* //ABDCDCBABC CBABCDCDBA 7 最长相同子序列(不需要连续)采用动态规划DP 二维表 输出最后一个位置就可*/#include <iostream> #include <string> using namespace std; int n, m; string a, b; ...
分类:
其他好文 时间:
2020-04-03 20:24:58
阅读次数:
77
动态规划(DP)不是某种具体算法,而是一种思想。 核心在于:把大问题转化为小问题,利用小问题的解推断出大问题的解。 大事化小,小事化了 的思想 一、基本思想 小例子: 上楼梯 今有 n 级台阶。初始时站在 0 级,每次可以向上走 1 级或 2 级。问方案总数? 递推关系:走到 f [ n ] ,要么 ...
分类:
其他好文 时间:
2020-03-25 21:26:11
阅读次数:
77
把一个数组分成m个连续子数组(不能有空数组),求所有分法中,子数组sum的最大值的最小值。 方法1:容易想到的是动态规划 dp[i][j] = min(max(dp[k-1][j-1], sum[k][i]) 1 <= k <= i, dp[i][j]表示用前i个数字,分成j组,最大和的最小值 ti ...
分类:
其他好文 时间:
2020-03-20 10:37:12
阅读次数:
47
#include <vector> #include<iostream> using namespace std; int main() { int k; cin>>k; int left_index=0,right_index=k-1,sum=-1,tmp=0,tmp_index=0; vecto ...
分类:
其他好文 时间:
2020-02-08 19:43:22
阅读次数:
83