摘要:
原题链接 考察:树形dp 想了半天没想出来怎么从父节点的深度和推到子节点深度和,我果然fw 思路: 换根dp模板题.也称二次扫描法,第一次多用于预处理,第二次多用于计算答案. 第一次dfs时,用子节点更新父节点,计算每个结点的子树结点个数,并计算当前假定根的深度和 第二次dfs时,用父节点更新子节点 阅读全文
摘要:
原题链接 考察:树形dp 推dp转移方程的时候,总是忘记f数组原来定义的含义...初始化也可以帮助推出dp数组. 思路: f[u][j] 表示以u为根的子树中,保留j个点最少的剪枝数.初始化f[u][1] = son[u].这样初始化一开始点都是独立的,通过下面的转移方程将它们连起来. 那么dp转移 阅读全文
摘要:
原题链接 考察:树形dp 思路: 参考大佬的思路,本蒟蒻还以为是有依赖的背包问题,但是直接开背包数组会MLE. 定义f[i]为以i为根节点的子树中,最大的结点和.f[i] = max(f[i],f[j](j为i的所有直接或间接的子节点)). 这道题是选两个不相干的最大子树和,需要在每个结点处取最值. 阅读全文