
dp
paranoidZ
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
01 完全 多重 分组 背包
整数划分经典的完全背包模型,f[i][j]表示前i个数,容量为j的方案数之和, 和求完全背包的最大值相比就变了一下属性变为了数量和,依然是给个图好理解接着就是如何进行优化了以上就可以看出就是一个完全背包的问题code:#include<iostream>#include<cstdio>using namespace std;const int N = 1100;const int mod = 1...原创 2020-11-13 09:26:43 · 123 阅读 · 0 评论 -
7-15 凑零钱 (30分)(dfs或则01背包记录路径)
这里给出了俩种解法首先是dfs(这种方法还是很香的,能骗几分是几分)详细解释请看代码参考了一下网上的其他的代码,发现最后一个测试点是所有钱加起来还小于m的#include<iostream>#include<cstdio>#include<algorithm>using namespace std;const int N = 1e4 + 10;int a[N];int n,m;int path[N];int top;...原创 2020-11-05 16:12:59 · 387 阅读 · 0 评论 -
各种背包问题(01 完全 多重 分组待更新)
首先是 01背包问题:每个物品只能选择一次,选择总重量不大于V的最大价值先说一下二维的吧 f[i][j]:从前i件物品中选择容量不大于j的最大价值 表示的是一个集合接下来就是求状态转移方程也就是集合划分,下面给出一个集合划分的图f[i][j] = max(f[i -1][j] ,f[i -1][j - v[i]] + w[i]);找到了状态转移方程就可以写代码了,不过我们发现了f[i][j]属于第i层然后max后面这一堆都属于第j层的,然后就是同样j也是从...原创 2020-11-04 21:18:13 · 184 阅读 · 0 评论 -
石子合并(区间dp)
题目连接:https://www.acwing.com/problem/content/284/思路:首先你需要知道最后一次合并石子,肯定是左右俩堆的合并,所以可以想到区间dp , f[i][j]表示石子i到j合并成一堆的集合之后就是对区间的划分了,如下图所示#include<iostream>#include<cstdio>#include<cstring>#define INF 0x3f3f3f3fus...原创 2020-10-15 16:35:37 · 411 阅读 · 0 评论 -
区间dp
密码脱落题目连接:https://www.acwing.com/problem/content/1224/思路:首先因为是dp题,需要集合划分,因为是求最大值,所以可以有重复但是不能遗漏,集合划分的依据:[l,r]之间回文子序列的集合区间dp的遍历方法一般是先遍历区间长度在遍历左端点,长度为len,左端点是l,则右端点l+len-1code:#include<iostream>#include<cstd...原创 2020-10-08 11:58:12 · 119 阅读 · 0 评论 -
2020 8.4 线性dp
总结一下,这种问题就是找子问题,由子问题来求当前的问题就这吧 ,还是得多刷题题目连接:https://vjudge.net/contest/387533A - 超级楼梯这个n是40,相当于斐波那契数列f[40]可以背int类型的数据存储f[i]表示到第i层的方法数到第i层可以由第i-2或则i-1层得到f[i]=f[i-1]+f[i-2]\code:#include<iostream> using namespace std...原创 2020-08-05 16:28:53 · 121 阅读 · 0 评论 -
Equal Sentences(简单dp)
http://acm.hdu.edu.cn/showproblem.php?pid=6806思路:先介绍一下f[i]的含义:f[i]表示前i个单词构成的句子有多少个不同的几乎相等的句子数这里给大家一个图code:#include<iostream>#include<cstdio>#include<algorithm>#define INF 0x3f3f3f3f#include<cstring> using n...原创 2020-07-31 11:16:03 · 236 阅读 · 0 评论 -
I. Shopping Spree
ou've won a shopping spree with a very peculiar rule. The items you are allowed to take are in consecutive order, indexed 1 through n. You may select any subset of these items subject to the following constraint:For each index k of items chosen for the s原创 2020-06-03 17:23:36 · 259 阅读 · 0 评论 -
B. Orac and Models
题目连接:https://codeforces.com/contest/1350/problem/BB. Orac and Modelstime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputThere arennmodels in the shop numbered from11tonn, with sizes...原创 2020-05-13 16:36:11 · 456 阅读 · 0 评论 -
最长上升子序列
一个dp的金典题目:题目给定一个长度为N的数列,求数值严格单调递增的子序列的长度最长是多少。输入格式第一行包含整数N。第二行包含N个整数,表示完整序列。输出格式输出一个整数,表示最大长度。数据范围1≤N≤10001≤N≤1000,−109≤数列中的数≤109−109≤数列中的数≤109输入样例:73 1 2 1 8 5 6输出样例:4思路:用数组a[]存储这个序列,创建一个f[]数组f[i]表示以a[i]结尾序列的集合,通过这个集合求出a[.原创 2020-05-13 14:48:15 · 202 阅读 · 0 评论