随笔分类 -  基础DP

摘要:先看一下模板 点击查看代码 //f[i][j]表示从i到j区间的值 for(int len=2;len<=n;len++)//len表示区间长度 { for(int i=1;i+len-1<=n;i++)//关系一般为2<=i<=k<j<=n { int j=i+len-1;//j的求值,开始点+区 阅读全文
posted @ 2024-02-17 16:51 zhengchenxi 阅读(17) 评论(0) 推荐(1) 编辑
摘要:坐标DP相较来说会比较简单。 直接上例题 1.坐标遍历问题 传纸条 点击查看代码 #include<bits/stdc++.h> using namespace std; const int N=120; int m,n; int g[N][N],f[N][N][N]; int ans; int m 阅读全文
posted @ 2024-02-17 16:20 zhengchenxi 阅读(24) 评论(0) 推荐(1) 编辑
摘要:这篇主要涉及线性DP。 先介绍模型,求最长上升子序列。 点击查看代码 #include <bits/stdc++.h> using namespace std; const int N=1020; int n; int f[N],ans,a[N]; int pre[N],te; void outpu 阅读全文
posted @ 2024-02-17 15:32 zhengchenxi 阅读(16) 评论(0) 推荐(1) 编辑
摘要:下面介绍一下背包DP主要题型 基础模型(没什么好说的,上模板) 1.01背包 最主要的模板,应用很多,很重要!!! 倒着遍历容积,不会受后选小的f[i][j]影响,已经选过的物品不会再选一遍。 点击查看代码 #include <bits/stdc++.h> using namespace std; 阅读全文
posted @ 2024-02-17 15:07 zhengchenxi 阅读(29) 评论(0) 推荐(1) 编辑
摘要:说一下近日所学的主要两种题型,一个是分叉情况问题,一种是树上背包问题。 分叉情况问题 具体的题可以参考小胖守皇宫和三色二叉树。 点击查看代码 小胖守皇宫 #include<bits/stdc++.h> using namespace std; const int N=2000; vector<int 阅读全文
posted @ 2024-02-17 12:09 zhengchenxi 阅读(26) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示