![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
文章平均质量分 60
基础算法的动态规划
CSDN729180099
这个作者很懒,什么都没留下…
展开
-
动态规划——记忆化搜索
记忆化搜索顾名思义是在搜索的过程中通过记录搜索的中间状态从而达到减少重复搜索的方法,通常用在搜索树中出现重复子节点的情况。例题:滑雪给定一个R行C列的矩阵,表示一个矩形网格滑雪场。矩阵中第 i 行第 j 列的点表示滑雪场的第 i 行第 j 列区域的高度。一个人从滑雪场中的某个区域内出发,每次可以向上下左右任意一个方向滑动一个单位距离。当然,一个人能够滑动到某相邻区域的前提是该区域的高度低于自己目前所在区域的高度。下面给出一个矩阵作为例子:1 2 3 4 516 17 18 19 6.原创 2021-01-21 15:24:04 · 148 阅读 · 0 评论 -
动态规划——树形DP
例题: 没有上司的舞会Ural大学有N名职员,编号为1~N。他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。每个职员有一个快乐指数,用整数 Hi 给出,其中 1≤i≤N。现在要召开一场周年庆宴会,不过,没有职员愿意和直接上司一起参会。在满足这个条件的前提下,主办方希望邀请一部分职员参会,使得所有参会职员的快乐指数总和最大,求这个最大值。输入格式第一行一个整数N。接下来N行,第 i 行表示 i 号职员的快乐指数Hi。接下来N-1行,每行输入一对整数L, K,表示K是L的直接上司原创 2021-01-20 18:45:48 · 124 阅读 · 0 评论 -
动态规划——状态压缩DP
一、状态压缩DP概念状态压缩DP是用二进制数表示一个集合(即状态),然后进行状态转移例题:蒙德里安的梦想求把N* M的棋盘分割成若干个1*2的的长方形,有多少种方案。例如当N=2,M=4时,共有5种方案。当N=2,M=3时,共有3种方案。如下图所示:输入格式输入包含多组测试用例。每组测试用例占一行,包含两个整数N和M。当输入用例N=0,M=0时,表示输入终止,且该用例无需处理。输出格式每个测试用例输出一个结果,每个结果占一行。数据范围1≤N,M≤11输入样例:1 21原创 2021-01-10 20:27:08 · 172 阅读 · 0 评论 -
动态规划——计数类DP
计数类DP状态函数的值是集合中元素的个数1. 例题:整数划分一个正整数n可以表示成若干个正整数之和,形如:n=n1+n2+…+nk,其中n1≥n2≥…≥nk,k≥1。我们将这样的一种表示称为正整数n的一种划分。现在给定一个正整数n,请你求出n共有多少种不同的划分方法。输入格式共一行,包含一个整数n。输出格式共一行,包含一个整数,表示总划分数量。由于答案可能很大,输出结果请对109+7取模。数据范围1≤n≤1000输入样例:5输出样例:7解题思路:用完全背包的类似思路1)确定原创 2021-01-01 23:51:14 · 167 阅读 · 0 评论 -
动态规划——区间DP
特点:将一些区间进行合并,以区间分段点进行集合划分2. 例题:石子合并设有N堆石子排成一排,其编号为1,2,3,…,N。每堆石子有一定的质量,可以用一个整数来描述,现在要将这N堆石子合并成为一堆。每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同。例如有4堆石子分别为 1 3 5 2, 我们可以先合并1、2堆,代价为4,得到4 5 2, 又合并 1,2堆,代价为9,得到9 2 ,再合并得到11,总代.原创 2020-12-26 21:49:28 · 123 阅读 · 0 评论 -
动态规划——线性DP
动态规划的思维图线性DP的定义状态转移方程是线性关系的,即从前向后线性递推典型例题数字三角形给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5输入格式第一行包含整数n,表示数字三角形的层数。接下来n行原创 2020-12-21 20:59:36 · 292 阅读 · 0 评论 -
动态规划——背包问题
背包问题01背包完全背包多重背包分组背包01背包解题思路:动态规划将状态方程从前往后一直推到最终答案状态由动态方程可以看出,后一个状态可以由前一个状态推出,所以可以递推出f[n][v] 即在前n个物品中选择体积不超过v的集合中权值最大值是多少。例题:01背包问题有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,原创 2020-12-19 00:19:50 · 3000 阅读 · 0 评论