n个整数列表中存在多少个不同的最大堆?


Answers:


22

我没有找到闭合形式,但是根据在线整数序列百科全书中的此项,该序列以

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 1n 2 n 1 + n 2 = n 1nnn1,n2n1+n2=n1(n1n1)

a(n)=(n1n1)a(n1)a(n2).
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.