CF9E - How many trees?
题意
问 $n$ 个点组成的二叉树高度大于 $h$ 的有多少个。
题解
设状态为 $dp[n][h]$ 表示 $n$ 个点深度不超过 $h$ 的二叉树数量,那么答案即为 $dp[n][h]-dp[n][h-1]$。
考虑转移:
让后我们设置初始状态为:$dp[i][0]=0, dp[0][i]=1$ 。
转移的含义很显然,就是左边所有 $h-1$ 的方案和右边所有 $h-1$ 相匹配然后多了父亲所以深度加一。
代码
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 祝馀宫!
评论