pascal大牛请进 已知结点个数,如何求不同二叉树的个数
发布网友
发布时间:2022-04-24 15:41
我来回答
共1个回答
热心网友
时间:2023-10-20 02:50
组合数学问题,(1/n+1)*
C(n,2n)
也可以用dp做,程序如下(测试通过):
Program
treenodes;
var
f:
array[0..20]
of
int64;
n,i,j,k:
integer;
begin
readln(n);
f[0]:=
1;
f[1]:=
1;
for
i:=
2
to
n
do
begin
j:=
0;
k:=
i-1;
while
k-j
>
0
do
begin
inc(f[i],
f[j]*f[k]*2);
inc(j);
dec(k);
end;
if
odd(i)
then
inc(f[i],
f[j]*f[k]);
end;
writeln(f[n]);
end.