动态规划
动态规划问题
fftx_00
这个作者很懒,什么都没留下…
展开
-
【动态规划】最长回文子串
#include <iostream>#include <string.h>using namespace std;#define MAXN 1010int dp[MAXN][MAXN];char S[MAXN];int ans=1;//最长回文子串长度int main(){ gets(S); int len=strlen(S); //1:Initialize for(int i=0;i<len;i+...原创 2021-10-13 18:31:59 · 56 阅读 · 0 评论 -
【动态规划】最长公共子序列(LCS)
#include <iostream>#include <string.h>using namespace std;int m,n;char A[1010];char B[1010];int dp[1010][1010];int main(){ //从1开始存储,处理边界 gets(A+1); gets(B+1); int m=strlen(A+1);//注意从A+1开始存的 int n=strlen(B...原创 2021-10-09 18:37:58 · 69 阅读 · 0 评论 -
【动态规划】最长不下降子序列(LIS)
#include <iostream>using namespace std;int n;int A[1010];int dp[1010];int main(){ scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&A[i]); } dp[0]=1; for(int i=1;i<n;i++){ dp[i]=1;...原创 2021-10-09 18:08:06 · 81 阅读 · 0 评论 -
【动态规划】最大连续子序列和
#include <iostream>using namespace std;int n;int A[1010];int dp[1010];int main(){ scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&A[i]); }//边界 dp[0]=A[0]; for(int i=1;i<n;i++){ int...原创 2021-10-07 21:49:56 · 91 阅读 · 0 评论 -
【动态规划】什么是动态规划
动态规划(Dynamic Programming,DP)是一种用来解决一类最优化问题的算法思想动态规划将一个复杂的问题分解成若干个子问题, 通过综合子问题的最优解来得到原问题的最优解会将每个求解过的子问题的解记录下来,这样可以避免下一次的重复计算。递归写法(记忆化搜索)【自顶向下Top-down Approach】递推写法【自底向上Bottom-up Approach】重叠子问题(Overlapping Subproblems):一个问题可以被分解为若干个...原创 2021-10-05 22:58:44 · 1448 阅读 · 0 评论