DP&图论 DAY 2 下午
DP&图论 DAY 2 下午 基础树形 DP 前言 ◦ 1 :与树或图的生成树相关的动态规划。 ◦ 2 :以每棵子树为子结构,在父亲节点合并,注意树具有天然的子结构。 这是很优美的很利于 dp 的。 ◦ 3 :巧妙利用 Bfs 或 Dfs 序,可以优化问题,或得到好的解决方法。 ◦ 4 :可以与树上的数据结构相结合。 ◦ 5 :树形 Dp 的时间复杂度要认真计算,部分问题可以均摊复杂度分析。 ◦ 6 :一般设 f[u] 表示 u 子树的最优价值或者是说方案数。 ◦ 或者 f[u][k] 表示 u 子树附加信息为 k 的最优值,往往是通过考虑子树根节点 的情况进行转移。 ◦ 7 :树形 dp ,在树结构上,求最优值,求方案等 dp 问题,就可以考虑是树 形 dp 。 ◦ 当然也有可能是点分治或者是分析性质的贪心题。但是树形 dp 绝对是一 个很好的思考方向。 >树上最大独立集 ◦ 给你一棵大小为 n 的树,求这棵树的最大独立集是多少。 ◦ 最大独立集指的是一个最大的点集使得其中的点两两没有边相连。 ◦ N<=100000 >Solution ◦ dp[i][0/1] 表示做完了 i 的子树, i 点是否选的最大独立集,即可直接转移。 对于当前节点 i ,如果不选 i ,那么他的儿子可以选也可以不选 如果选 i ,那么他的儿子一定不能选 ◦ 代码还是很好写的。 >树的直径 ◦