摘要:
树形DP 题目链接:AcWing 285. 没有上司的舞会 题目描述 Ural 大学有 $N$ 名职员,编号为 $1∼N$。 他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。 每个职员有一个快乐指数,用整数 $H_i$ 给出,其中 $1 \le i \le N$。 现在要召开一场周年庆 阅读全文
摘要:
状态压缩DP 蒙德里安的梦想 问题描述 求把 $N×M$ 的棋盘分割成若干个 $1×2$ 的长方形,有多少种方案。 例如当 $N=2,M=4$ 时,共有 $5$ 种方案。当 $N=2,M=3$ 时,共有 $3$ 种方案。 如下图所示: 输入格式 输入包含多组测试用例。 每组测试用例占一行,包含两个整 阅读全文
摘要:
数位统计 DP 数位统计DP是与数字相关的一类计数问题。在这类题目中,一般给定一些限制条件,求满足限制条件的第 $K$ 小的数是多少,或者求在区间 $[L,R]$ 内有多少个满足限制条件的数。解决方法为先利用动态规划进行预处理,再基于拼凑思想,用“试填法”求出最终的答案。 题目链接:AcWing 3 阅读全文
摘要:
计数类 DP 题目链接:AcWing 900. 整数划分 问题描述 一个正整数 $n$ 可以表示成若干个正整数之和,形如:$n=n_1+n_2+\dots+n_k$,其中 $n_1 \ge n_2 \ge \dots \ge n_k,k \ge 1$。 我们将这样的一种表示称为正整数 $n$ 的一种 阅读全文
摘要:
区间DP 到目前为止,我们介绍的线性 DP 一般从初态开始,沿着阶段的扩张向某个方问递推,直至计算出目标状态,区间 DP 也属于线性 DP 中的一种,它以“区间长度”作为 DP 的“阶段”,使用两个坐标(区间的左、右端点),描述每个维度。在区间 DP 中,一个状态由若干个比它更小且包含于它的区间所代 阅读全文
摘要:
线性DP 线性DP 数字三角形 最长上升子序列(LIS)问题 最长上升子序列(LIS)问题 II 最长公共子序列(LCS)问题 最短编辑距离 编辑距离 具有线性“阶段”划分的动态规划算法被统称为线性DP。 数字三角形 题目链接:AcWing 898. 数字三角形 问题描述 给定一个共有 $N$ 行的 阅读全文
摘要:
博弈论 博弈论 NIM 博弈 台阶-Nim游戏 公平组合游戏ICG 有向图游戏 Mex 运算 SG 函数 有向图游戏的和 定理 集合-Nim游戏 拆分-Nim游戏 NIM 博弈 给定 $n$ 堆物品,第 $i$ 堆物品有 $A_i$ 个。两位玩家轮流操作,每次操作可以任选一堆,拿走任意数量的物品(可 阅读全文
摘要:
背包问题 背包问题 0/1 背包问题 完全背包 多重背包 二进制拆分法 分组背包 背包是线性 DP 中一类重要而特殊的模型,本文将其作为单独一部分进行总结整理。 0/1 背包问题 0/1 背包问题的模型如下: 给定 $N$ 个物品,其中第 $i$ 个物品的体积为 $V_i$ ,价值为 $W_i$ 。 阅读全文
摘要:
容斥原理 设 $S_1,S_2,\cdots,S_n$ 为有限集合,$|S|$ 表示集合 $S$ 的大小,则: $$ \vert \bigcup\limits_{i=1}^{n}S_i \vert = \sum\limits_{i=1}^{n} \vert S_i \vert - \sum\limi 阅读全文
摘要:
组合计数 组合计数 求组合数 I —— 预处理组合数 求组合数 II —— 预处理阶乘 求组合数 III —— 卢卡斯定理(Lucas) 求组合数 IV —— 高精度 满足条件的01序列 —— 卡特兰数 求组合数 I —— 预处理组合数 给定 $n$ 组询问,每组询问给定两个整数 $a$,$b$,请 阅读全文