
——动态规划——
动态规划
Alex_McAvoy
想要成为渔夫的猎手
展开
-
动态规划 —— 背包问题
【概述】 背包问题(Knapsack problem)是一种组合优化的NP完全问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。问题的名称来源于如何选择最合适的物品放置于给定背包中。也可以将背包问题描述为决定性问题,即:在总重量不超过W的前提下,总价值是否能达到V?【分类】P01 0...原创 2018-03-31 10:02:18 · 2176 阅读 · 0 评论 -
动态规划 —— 动态规划概述
【概述】动态规划:解决多阶段决策问题的一种方法。实际上就是一种排除重复计算的算法,更具体的说,动态规划就是用空间换取时间。 多阶段决策问题:若一类问题的求解过程可分为若干个互相联系的阶段,在每一个阶段都需作出决策,并影响到下一个阶段的决策。这类问题的解决,就是要在可以选择的那些策略间,选一个最优策略,使在预定的标准下达到最好的效果。 阶段:将所给求解问题的过程恰当地分成若干个相互联系的阶段...原创 2018-03-26 20:26:59 · 2884 阅读 · 0 评论 -
动态规划 —— 区间 DP
【概述】区间型动态规划,又称为合并类动态规划,是线性动态规划的扩展,它在分阶段地划分问题时,与阶段中元素出现的顺序和由前一阶段的区间中哪些元素合并而来有很大的关系。实质上就是在一个区间上进行的动态规划,不仅要满足 DP 问题的最优子结构,还要符合在区间上操作的特点。其主要思想就是在小区间进行 DP 得到最优解,然后再利用小区间的最优解合并求大区间的最优解。往往会枚举区间,将区间分成...原创 2018-08-17 10:14:33 · 1564 阅读 · 2 评论 -
动态规划 —— 线性 DP
【概述】线性动态规划,是较常见的一类动态规划问题,其是在线性结构上进行状态转移,这类问题不像背包问题、区间DP等有固定的模板。线性动态规划的目标函数为特定变量的线性函数,约束是这些变量的线性不等式或等式,目的是求目标函数的最大值或最小值。因此,除了少量问题(如:LIS、LCS、LCIS等)有固定的模板外,大部分都要根据实际问题来推导得出答案。【常见问题】序列问题:点击这里 最...原创 2018-08-20 14:32:36 · 18803 阅读 · 4 评论 -
动态规划 —— 状压 DP
【概述】通常将以一个集合内的元素信息作为状态且状态总数为指数级别的动态规划称为状态压缩动态规划。其是一类以集合信息为状态的特殊的动态规划问题,主要有传统集合动态规划与基于连通性状态压缩的动态规划两种。其原理是通过二进制位运算将状态压缩(用整数表示集合)作为动态规划的状态来解决问题。通常具备以下两个特点:数据规模的某一维或几维特别小 需要具备动态规划问题的两个基本性质:最优性原...原创 2018-08-21 09:53:09 · 857 阅读 · 0 评论 -
动态规划 —— 树形 DP
【概述】树形动态规划是在树的数据结构上的动态规划,在各个阶段呈现树状关系的时候可以采用树形 DP,其基本思想是由子节点的信息推出父节点的信息。树形 DP 中,是通过以下 4 点树的特点来进行建图的n 个点,n-1 条边的无向图,任意两顶点间可达 无向图中任意两个点间有且只有一条路 一个点至多有一个前趋,但可以有多个后继 无向图中没有环【计算顺序】计算顺序与线性动态规划的顺...原创 2018-10-06 14:43:25 · 1227 阅读 · 0 评论 -
动态规划 —— 数位 DP
【概述】数位 DP 实际是一种计数用的 DP,一般就是统计一个区间 [le,ri] 内满足一些条件数的个数。所求的限定条件往往与数的位数有关,例如:数位之和、指定数码个数、数的大小顺序分组等。题目所给的区间范围往往很大,无法通过暴力枚举来求解,一般是要求把某个区间的符合某种特征的数的个数求出来,因此根据根据 “逐位确定” 的基本思想,将最大数按位分解,然后 dfs 依次判断每一位相应的...原创 2018-09-04 20:00:55 · 770 阅读 · 0 评论 -
动态规划 —— 概率 DP 与期望 DP
【概述】由于概率和期望具有线性性质,使得可以在概率和期望之间建立一定的递推关系,这样就可以通过动态规划来解决一些概率问题,例如概率和期望的最值问题就常常使用概率 DP、期望 DP 来解决。与其他的动态规划一样,合理的选择状态以及高效的状态转移方程是关键,选择合适的状态不仅可以提高效率,而且可以保证动态规划所必须的无后效性。一般来说,将问题直接作为状态是最好的,当找到正确的状态定义后,转...原创 2019-04-02 15:28:37 · 3468 阅读 · 1 评论