动态规划系列(0)综述
动态规划(Dynamic Programming) 动态规划(Dynamic Programming) 基本思路,对于一个能用动态规划解决的问题,一般采用如下思路解决: 将原问题划分为若干 阶段,每个阶段对应若干个子问题,提取这些子问题的特征(称之为 状态); 寻找每一个状态的可能 决策,或者说是各状态间的相互转移方式...
动态规划(Dynamic Programming) 动态规划(Dynamic Programming) 基本思路,对于一个能用动态规划解决的问题,一般采用如下思路解决: 将原问题划分为若干 阶段,每个阶段对应若干个子问题,提取这些子问题的特征(称之为 状态); 寻找每一个状态的可能 决策,或者说是各状态间的相互转移方式...
树状DP https://leetcode.cn/problems/count-subtrees-with-max-distance-between-cities/solution/tu-jie-on3-mei-ju-zhi-jing-duan-dian-che-am2n/ 树状DP通常和DFS,状态压缩,回溯绑在一起,顾名思义,就是在非线性的数据结构上完成DP的过程。 餐前水...
状态压缩DP专题——博弈 状态压缩是DP中一种常见的情况,通常与遍历有关,例如DFS方法。因此,出现了一系列的算法题,博弈问题就在其中,我们称之为,博弈类DP,此类DP有一个先决条件,就是Alice和Bob都是冷酷的敌人。 参考:https://leetcode.cn/problems/stone-game-ii/solution/jiao-ni-yi-bu-bu-si-kao-d...
数位DP 数位DP,在看似不可能的复杂度下简化。 参考 https://oi-wiki.org/dp/number/ https://github.com/EndlessCheng/codeforces-go/blob/master/copypasta/dp.go#L1918 https://leetcode.cn/problems/count-special-integ...
并查集(Disjoint-Set Data Structure) 介绍 并查集是一种用于管理元素所属集合的数据结构,实现为一个森林,其中每棵树表示一个集合,树中的节点表示对应集合中的元素,本质上是一棵棵父亲树。 type dsu struct { pa []int } 并查集支持两种操作: ...