DP算法
是三水不是泗水
只是个笔记本
展开
-
滚动数组
滚动数组的作用在于优化空间,主要应用在递推或动态规划中(如01背包问题)。因为DP题目是一个自底向上的扩展过程,我们常常需要用到的是连续的解,前面的解往往可以舍去。所以用滚动数组优化是很有效的。利用滚动数组的话在N很大的情况下可以达到压缩存储的作用。 一个简单的例子: 斐波那契数列: 一般代码: [cpp] view plain copy #include<iostream&...转载 2018-10-05 13:39:17 · 119 阅读 · 0 评论 -
P1164 小A点菜
DP计算方案数,有点像递推 #include<bits/stdc++.h> using namespace std; const int MAXN=102; const int MAXV=10002; int main() { int n,m;cin>>n>>m; int w[MAXN]={}; int dp[MAXV]={}; for(int ...原创 2018-10-05 18:54:03 · 105 阅读 · 0 评论 -
P1048 采药
#include<bits/stdc++.h> using namespace std; const int MAXN=102; const int MAXV=1002; int main() { int T,M;cin>>T>>M; int w[MAXN]={}; int c[MAXN]={}; int dp[MAXV]={}; for(int i...原创 2018-10-05 21:46:17 · 119 阅读 · 0 评论 -
Cars on Campus
这个dp很头疼,参考了https://www.liuchuo.net/archives/2951大佬思路 #include<bits/stdc++.h> using namespace std; struct Node{ string id; int timelen; int status; }; bool cmp(Node a,Node b){ if(a.id!=b.i...原创 2018-10-21 21:47:49 · 337 阅读 · 0 评论