| 问题描述: | 设给定n个变量x1,x2,…,xn。将这些变量依序作底和各层幂,可得n重幂如下 这里将上述n重幂看作是不确定的,当在其中加入适当的括号后,才能成为一个确定的n 重幂。不同的加括号方式导致不同的n重幂。例如,当n=4时,全部4重幂有5个。 | |
| 编程任务: | 对n个变量计算出有多少个不同的n重幂。 | |
| 数据输入: | 输入有多行,每一行提供一个数n。 | |
| 结果输出: | 输出多行。对于输入中每一行,在一行中输出不同n重幂的数目。 | |
| 样例: | 4 | 5 |
| 核心思想 | f[i]=∑(0<=j<i)(f[j]*f[i-j-1]) Catalan数 | |
var
f:array[0..1000]of qword;
n,i,j:longint;
begin
assign(input,'p33.in');reset(input);
assign(output,'p33.out');rewrite(output);
readln(n);
f[1]:=1;
f[0]:=1;
fori:=2 to n do
forj:=0 to i-1 do
f[i]:=f[i]+f[j]*f[i-j-1];
writeln(f[n-1]);
close(input);close(output);
end.题目来源:《算法设计与分析》第三章动态规划
1842

被折叠的 条评论
为什么被折叠?



