随笔分类 -  dp

动态规划总结
摘要:01背包 有 N 件物品和一个容量为 V的背包。放入第 i件物品花费的费用是 c [ i ],得到的价值是 w [ i ] ,求将哪些物品装入背包可使价值总和最大。 ​for (int i = 1; i <= n; i++) for (int j = V; j >= c[i]; j--) f[j] 阅读全文
posted @ 2022-03-03 22:07 fengzlj 阅读(28) 评论(0) 推荐(0) 编辑
摘要:最长上升子序列 NlogN hdu 1950 # include <bits/stdc++.h>using namespace std;​const int MAXN=2e6+100;int a[MAXN],dp[MAXN];//vector<int> ans;int main(){ int T; 阅读全文
posted @ 2022-02-26 23:08 fengzlj 阅读(50) 评论(0) 推荐(0) 编辑
摘要:子集生成 1.该数二进制的所有组合的集合 # include <bits/stdc++.h>using namespace std;​int a[20],v[1<<16],dp[1<<16];int dfs(int s,int now){ if(dp[s]) return dp[s]; int an 阅读全文
posted @ 2022-02-26 23:06 fengzlj 阅读(89) 评论(0) 推荐(0) 编辑
摘要:字符集为2——过河卒变形 此模型多用于01串、括号串,这种字符集为2的字符串,最好它的个数再给定 1)把01串转化为图上的往右走或者往上走,个数为先限制的图的长宽 2)前缀和后缀可以转化为图上的权值 3)固定的字符可以转化为某个点固定下一步的方向 装化为过河卒问题 eg:牛63 D # includ 阅读全文
posted @ 2022-02-26 23:06 fengzlj 阅读(15) 评论(0) 推荐(0) 编辑
摘要:斜率优化 1.费用提前计算 O(N^2) # include <bits/stdc++.h>using namespace std;​typedef long long LL;const int MAXN=5e3+100;LL f[MAXN],sumt[MAXN],sumc[MAXN];int N, 阅读全文
posted @ 2022-02-26 23:05 fengzlj 阅读(47) 评论(0) 推荐(0) 编辑
摘要:状压DP //一维dp:糖果【蓝桥杯省赛】# include <bits/stdc++.h>using namespace std;​const int MAXN=1<<21;int dp[MAXN],s[110];int main(){ memset(dp,-1,sizeof(dp)); int 阅读全文
posted @ 2022-02-26 23:05 fengzlj 阅读(128) 评论(0) 推荐(0) 编辑
摘要:倍增优化的DP # include <bits/stdc++.h>using namespace std;​typedef long long LL;string s1,s2;int n1,n2;LL f[105][32];int main(){ while(cin>>s2>>n2>>s1>>n1) 阅读全文
posted @ 2022-02-26 23:03 fengzlj 阅读(87) 评论(0) 推荐(0) 编辑
摘要:单调队列优化的DP k递增,calc递减的单调队列 # include <bits/stdc++.h>using namespace std;​struct rec{ int L,P,S; } a[110];int N,M,f[110][16010],q[16010];bool operator < 阅读全文
posted @ 2022-02-26 23:03 fengzlj 阅读(111) 评论(0) 推荐(0) 编辑
摘要:数据结构优化的DP # include <bits/stdc++.h>using namespace std;​const int mod=1e9+7;const int MAXN=1e3+100;int T,N,M;int f[MAXN][MAXN],a[MAXN],c[MAXN],aa[MAXN 阅读全文
posted @ 2022-02-26 23:03 fengzlj 阅读(74) 评论(0) 推荐(0) 编辑
摘要:1、一维状压DP糖果【蓝桥杯省赛】```cpp//糖果【蓝桥杯省赛】# include <bits/stdc++.h>using namespace std;const int MAXN=1<<21;int dp[MAXN],s[110];int main(){ memset(dp,-1,sizeo 阅读全文
posted @ 2022-02-26 22:54 fengzlj 阅读(41) 评论(0) 推荐(0) 编辑

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