2020.10.2 清北学堂 J2综合强化营 D3 动态规划笔记

搜索不能用,贪心不敢用

判断技巧:

看问题的类型

看数据范围

\(2\).基本步骤

设计状态

确定初始状态

推导状态转移方程

\((1)\). 设计状态(阶段)

主要思想:问什么,设什么从数据范围里猜测状态

思路:

满状态求出的最优解就是答案——最优解问题

状态即为答案,该状态是否能够达到即为该答案是否合法——可行解问题

\((2)\). 确定初始状态

常见\(DP\)初始状态的确定:

线性\(DP\):左端点、右端点、边界外

区间\(DP\):长度为 \(0/1/2\) ……

背包\(DP\):背包大小为 \(0\)

树形\(DP\):叶子节点、根节点

状压\(DP\)\(0\) 状态或题目给定的起始状态

\((3)\). 推导状态转移方程

主要思想:小问题 -> 大问题
分情况讨论:考虑最后一步的决策。
常见\(DP\)归类:

线性\(DP\):左 -> 右;右 -> 左

区间\(DP\):短 -> 长

背包\(DP\):小 -> 大

树形\(DP\):上 -> 下;下 -> 上

状压\(DP\)\(0\) 状态 -> 满状态;起始状态 -> 目标状态

其余:记忆化搜索

\(3\).典型题型

\((1)\).线性\(DP\)

\(Problem\ 1\):最长不下降子序列

状态的表示: \(f[i]\) 表示以 \(i\) 为结尾的最长不下降子序列的长度。
状态转移方程:\(dp[i]=max(dp[i],dp[j]+1);\ (a[j]<a[i])\ (0<=j<i)\)
时间复杂度:\(O(n^2)\)

\(Problem\ 2\): [\(NOIP\)提高组][\(2013\)] 花匠
原题传送门

\(Problem\ 3\):[\(NOIP\)普及组][\(2018\)] 摆渡车
原题传送门

\(Problem\ 4\):[\(NOIP\)提高组][\(2014\)] 飞扬的小鸟
原题传送门

\((2)\).区间\(DP\)
主要问题:求某区间的最优解
阶段:总区间
子问题:某段区间

\(Problem\ 1\):石子归并

状态的表示:\(f[i][j]\) 表示合并自 \(i\)\(j\) 堆的代价

\(Problem\ 2\):凸多边形三角划分
给定一个具有N(N<50)个顶点的凸多边形以及每个顶点的权值。问如何把这个凸多边形划分成N-2个互不相交的三角形,从而使得这些三角形顶点的权值的乘积之和最小?

状态的表示:\(f[i][j]\) 表示从第 \(i\)\(j\) 个点进行三角划分后的最小乘积和。

状态的转移:\(f[i][j] = min\{f[i][k]+f[k][j]+v[i]*v[j]*v[k]\}\) //v[i]指i的权值

\((3)\).背包\(DP\)(分配类\(DP\)

基本类型:

\(01\) 背包(link)

完全背包(link)

多重背包(待更)

\(Problem\ 1\):[\(NOIP\)提高组][\(2015\)] 子串
原题传送门

\(Problem\ 2\):[\(NOIP\)普及组][\(2005\)] 采药
原题传送门

\(Problem\ 3\):[\(NOIP\)提高组][\(2018\)] 货币系统
原题传送门

\(Problem\ 4\):[\(NOIP\)普及组][\(2019\)] 纪念品
原题传送门

\(Problem\ 5\):机器分配
原题传送门

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywdzg.html