神奇的二叉查找树 之用脚都能爆标
及其简单,一眼就看出来了。
在建出二叉查找树之后,显然只要满足父亲比儿子先选择就好了,考虑 DP。
设 表示处理了 的子树的方案数,那么显然有转移方程:
表示左右儿子分别选择一个方案,然后乘上分别选择的方案数。
发现上面的选择是线性的,而时间复杂度的瓶颈是建 BST,考虑优化。
发现加入的编号满足堆的性质,是笛卡尔树,直接 建树,轻松爆标,速度是 PYB 代码的 倍。
及其简单,一眼就看出来了。
在建出二叉查找树之后,显然只要满足父亲比儿子先选择就好了,考虑 DP。
设 表示处理了 的子树的方案数,那么显然有转移方程:
表示左右儿子分别选择一个方案,然后乘上分别选择的方案数。
发现上面的选择是线性的,而时间复杂度的瓶颈是建 BST,考虑优化。
发现加入的编号满足堆的性质,是笛卡尔树,直接 建树,轻松爆标,速度是 PYB 代码的 倍。