动态规划

简单聊一聊 \(A\ DP\)

区间 DP

简介

枚举区间长度,然后枚举左端点。

对于转移,可以枚举中间点 \(k\),由 \([l,k]\)\([k+1,r]\) 转移,或者由 \([l,r-1]\)\([l+1,r]\) 转移。

例题

P 4342 Polygon

link

对于此题,只有乘和加,考虑如何得到最大值。

  1. \(max\)\(max\)
  2. \(min\)\(min\)

如果两个最小值为负数,那么乘完之后就有可能会很大\(max\)\(min\) 可以考虑,但发现一定不是最优。

因为用到了最小值,提醒我们也需要一起处理出来最小值。

  1. \(min\)\(min\)
  2. \(max\)\(min\)

如果想偷懒,可以所有情况都考虑一遍。

树形 DP

简介

普通的树形 DP,基于 \(dfs\),由子节点向父节点合并,或 填表法

例题

P 3574 FAR-Farm Craft

link

经典树形 DP

斜率优化

解法

\(f_i=\min/\max\{f_j+val(i,j)\}\)

转换为 \(y_j=k_i*X_j+B_i\) 的形式,其中 \(B_i\) 包含求的 \(f_i\)
观察 \(k_i\) 的形式,具有单调性则可能用单调队列维护,其他形式可能为平衡树,CDQ等
\(b_i\) 取最小值在下凸壳,最大值在上凸壳

例题

CF311B Cats Transport

四边形不等式

四边形不等式图形化

一维 DP

\(f_i=\min/\max \{f_k+w(k,i) \}\)

定理(决策单调性)

如果 \(w\) 满足四边形不等式,则 \(f\) 满足决策单调性

决策单调性指对于 \(j \le i\),如果 \(i\) 的最优决策为 \(p\),那么 \(j\) 的最优决策 \(p' \ge p\)

例题

P1880 石子合并

二维 DP

例题

P4767 邮局

\(DAG\) 上 DP

填表法与刷表法

\(DP\) 问题中,当我们费尽千辛万苦憋出来状态转移方程的时候,一般直接就拿去求解了。

但是,与此同时有一个问题,假如状态转移方程是

\[dp_{i,j} = \{ dp_{i-1,j-1},\ dp_{i-1,j},\ dp_{i-1,j-1} \} \]

此时就有两种方法

  • 填表法:枚举 dp[i][j] ,由 dp[i-1][j-1],dp[i-1][j],dp[i][j-1] 更新
  • 刷表法:使用d[i][j]去更新dp[i+1][j]dp[i+1][j+1]dp[i][j+1]的值,枚举已知量,并且依据此更新依赖于它的未知量状态,注意此时的未知量可以是之前的(此时需要 \(SPFA\) 松弛),也可以是之后的

通常使用的都是比较直观的填表法,但是当dp[i][j]转移而来的状态不是固定的,那么就需要使用刷表法

简介

\(DAG\) 上 DP 一般是选择拓扑序SPFA,简要说明一下两种方法

例题

接下来为了清晰直观的了解 \(DAG\) 上的 DP,引入几道例题

矩形嵌套

link

对于这道题,我们先观察两个矩形 \(X\),\(Y\) 如何可以进行嵌套。

根据题意很自然的知道,\(X\) 可以套在 \(Y\) 中的条件

\(X_l<Y_l \ and \ X_h<Y_h\) 或者 \(X_l<Y_h \ and \ X_h<Y_l\)

那么我们便以此来进行建图,满足条件的 \(X\),\(Y\),建一条 \(Y\) 指向 \(X\) 的有向边。易知,图中绝对无环。进行拓扑排序。

硬币问题

link

UVA1371 周期 Period

posted @ 2022-04-20 10:07  淸梣ling  阅读(23)  评论(0)    收藏  举报