
动态规划(dp)
文章平均质量分 82
永远学不会的dp
Spidy_harker
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
动态规划与贪心,动态规划核心思想
贪心:决策者当前的做出决策不会影响到后续的决策选择,那么每一步都做出最优的决策则可使得全局达到最优的情况。以下我们来看一个例子:决策者要从状态A到达状态G,状态A经过决策b可以到达状态B,经过决策c可以到达状态C,以此类推,具体情况见下图。(边代表决策,节点代表状态)观察此图可以发现一个很重要的点:状态B/C都可以到达状态E/F,即不管你选择决策b到达状态B,还是决策c到达状态C,都可以从状态B/C做出同等的代价e/f到达状态E/F,即当前的决策不会影响到后续的决策。那么决策者可以在每一步的决策原创 2020-10-03 21:14:29 · 1450 阅读 · 1 评论 -
动态规划(dp)总结
问题 B: 【动态规划】圣诞树题目:圣诞特别礼物挂在一棵圣诞树上,这棵树有n层,每层有一件礼物,每件礼物都有一个价值,有的礼物还有一些连接线,与下层的礼物相连。领取礼物的规则如下:任选一件礼物,它的下面如果有连接线,则可以继续取它连接的礼物,依此类推直至取到没有连接线的礼物才结束。你如果是第一个去取,怎样取才能获得最大的价值呢?请你编一程序解决这一问题。输入第1行只有一个数据n(n≤100...原创 2020-03-05 17:30:34 · 1748 阅读 · 0 评论 -
洛谷P1060 开心的金明
题目01背包板子题#include <iostream>using namespace std;int f[30005];int main(){ int N,n;cin>>N>>n; int w[n+5],v[n+5]; for(int i=0;i<n;i++) { cin>>w[i...原创 2019-04-11 21:34:21 · 192 阅读 · 0 评论 -
P1164 小A点菜(两种解法dfs+剪枝/dp)
题目dfs+剪枝#include <iostream>using namespace std;bool visit[1005]={false};int ans=0;int n,mon;int w[1005];///菜品价格int cnt1=0,cnt=0;///01背包用搜索解决,每个东西只能选一次,注意index的使用!!!void dfs(int money,...原创 2019-04-11 22:34:14 · 533 阅读 · 0 评论 -
洛谷 P1049装箱问题(dp)
题目#include <iostream>using namespace std;///以下是未剪枝的dfs超时代码/*bool visit[35]={false};int a[35];int minn=20000;int n;void dfs(int w){ if(w<0) return; if(minn>w) minn=w; ...原创 2019-04-14 20:38:28 · 220 阅读 · 0 评论 -
P1064 金明的预算方案(有依赖的背包问题)
题目分组背包#include <iostream>using namespace std;int impw[70];int impv[70];int sidew[65][5];int sidev[65][5];int cnt1=0;int cnt2[65]={0};int f[32009];int main(){ int N;int n; ...原创 2019-04-17 22:32:30 · 233 阅读 · 0 评论 -
洛谷P1880 石子合并(环形)
题目#include <iostream>#include<cstdio>using namespace std;///环形!!!int fmax[210][210]={0};///长度要是题目所给长度的两倍多int fmin[201][210]={0};int sum[210]={0};int w[105];int n;int main(){ ...原创 2019-04-19 08:35:38 · 267 阅读 · 2 评论 -
问题H:数字组合
问题题目描述在N个数中找出其和为M的若干个数。先读入正整数N(1<N<100)和M(1<M<10000), 再读入N个正数(可以有相同的数字,每个数字均在1000以内), 在这N个数中找出若干个数, 使它们的和是M, 把满足条件的数字组合都找出来以统计组合的个数,输出组合的个数(不考虑组合是否相同)。要求你的程序运行时间不超过1秒。输入第一行是两个数字,表示N和M。...原创 2019-06-09 21:34:41 · 806 阅读 · 0 评论 -
问题 J: 流浪西邮之寻找火石碎片
众所周知,由于木星引力的影响,世界各地的推进发动机都需要进行重启。现在你接到紧急任务,要去收集火石碎片,重启西邮发动机。现在火石碎片已成为了稀缺资源,获得火石碎片需要钱或者需要一定的积分。火石碎片有大有小,越大的碎片能量越大,火石碎片的能量越大,重启的发动机的推力也就越强。但是,不只有我们在努力呀,隔壁的师大和政法也都在收集碎片,争取重启师大发动机和政法发动机,哪个高校重启的发动机推力最大,就能代...原创 2019-07-06 21:48:52 · 172 阅读 · 0 评论