整数列表中存在多少个不同的最大堆?
示例:列表 [1, 2, 3, 4]
最大堆可以是4 3 2 1
:
4
/ \
3 2
/
1
或4 2 3 1
:
4
/ \
2 3
/
1
整数列表中存在多少个不同的最大堆?
示例:列表 [1, 2, 3, 4]
最大堆可以是4 3 2 1
:
4
/ \
3 2
/
1
或4 2 3 1
:
4
/ \
2 3
/
1
Answers:
我没有找到闭合形式,但是根据在线整数序列百科全书中的此项,该序列以
1,1,1,2,3,8,20,80,210,896,3360,19200,79200,506880,2745600,21964800,108108000,820019200,5227622400,48881664000,319258368000,...
您可以在OEIS数据库中找到一个不太好的递归。基本上,这个想法如下。堆的根始终是最大的。根部悬挂的两个子树再次是maxheaps。它们的大小取决于,要计算大小(请参阅OEIS条目),显然很 。现在,我们可以选择哪些元素移到左侧堆,哪些元素移到右侧堆。有种方法来分配元素。这使得复发n n 1,n 2 n 1 + n 2 = n − 1