How Many Trees?
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 3317 Accepted Submission(s): 1922
Given a number n, can you tell how many different binary search trees may be constructed with a set of numbers of size n such that each element of the set will be associated to the label of exactly one node in a binary search tree?
1 2 3
1 2 5
题意:
对于给定的n,求n个节点能构成多少种二叉树,左子树的值 < 根节点 < 右子树
思路:Catalan数 + 大整数
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
static BigInteger []F = new BigInteger[105];
public static void ini()
{
F[1] = BigInteger.valueOf(1);
for(int i = 2;i < 105;i++)
{
F[i] = F[i-1].multiply(BigInteger.valueOf(i*4-2)).divide(BigInteger.valueOf(i+1));
}
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
ini();
Scanner Reader = new Scanner(System.in);
int x;
while(Reader.hasNext())
{
x = Reader.nextInt();
System.out.println(F[x]);
}
}
}
427



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



