随笔分类 - 树型动规
摘要:传送门 思路: 先求出各个点到 1 的最短路径。分别用两个数组将最短路径记录下来(一个要用来排序)。按排序后的 dis 值从小到大枚举各点加入树有多少种方案,最后根据乘法原理把各个点的方案数乘起来就是答案。(实现起来会比较繁琐) Code:
阅读全文
摘要:传送门 思路: 任意找一个点为树根。DFS 遍历树,如果子树和为负就直接跳过,不然就统计进答案。( 虽是任意取一点为根,但不一定从这个点出发能够取得最优解,要开一个 ans 记录一下最大值。) 标程:
阅读全文
摘要:传送门 思路: 普通的树型动规,可参考 P2016 战略游戏 。 标程:
阅读全文
摘要:传送门 思路: 前置知识——普通树D: ▲普通的树形 DP : 设 f [ i ][ 0 ] 表示这个点不取,则它的所有子节点都要取;f [ i ][ 1 ] 表示这个点取,则它的子节点取与不取对之前的答案没有影响,只要取两个中最优的情况。 ▲转移方程式: ▲操作实现: 常采用叶→根的转移形式,根据
阅读全文
摘要:传送门 思路: 前置知识——树的直径: ▲定义:找到两个点,使得它们的距离最远,它们的路径就是树的直径。 ▲求解: 此类问题,需要求出以每个节点为根的子树中的最长链,取其中的最大值即为该树的最长链。 对于每个节点,都要记录两个值: d1 [ i ] 表示以 i 为根的子树中,i 到叶子节点的距离最大
阅读全文