子树问题(DP)

Posted 2017gdgzoi44

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了子树问题(DP)相关的知识,希望对你有一定的参考价值。

技术图片
技术图片
技术图片

这题显然是DP

首先,(dp[i][j])表示树深度小于等于i,树的大小为j的有根树的数量$

可以循环枚举根节点编号次大的子树的大小k。

(dp[i][j]=sum^{j-1}_{k=1}dp[i][j-k]*dp[i-1][k]*C^{k-1}_{j-2})

注释:第一个dp表示的是除去这棵大小为k的子树的有根树数量,第二个dp表示的是这棵大小为k的子树的有根树数量,最后要给每一个点分配编号,只用分编号给(k的子树)或(除去k的剩余树),所以乘一个(C^{k-1}_{j-2})

因为一开始设的是深度小于等于i,所以最后要融斥去掉重复的树的数量。

因为一开始没有考虑这种树的好坏,所以当大小j是坏的时候,dp[i][j]=0。

以上是关于子树问题(DP)的主要内容,如果未能解决你的问题,请参考以下文章

LC 6223.移除子树后的二叉树高度(dp ||dfs序)

P1122 最大子树和 树形dp

洛谷P1122 最大子树和 (树状dp)

Luogu P1122 最大子树和 树形DP

洛谷P1122 最大子树和 树形DP

树形DP水题系列:FAR-FarmCraft [POI2014][luogu P3574]