题目链接:UVa 10007

题意:统计n个节点的二叉树的个数

1个节点形成的二叉树的形状个数为:1

2个节点形成的二叉树的形状个数为:2

3个节点形成的二叉树的形状个数为:5

4个节点形成的二叉树的形状个数为:14

5个节点形成的二叉树的形状个数为:42

把n个节点对号入座有n!种情况

所以有n个节点的形成的二叉树的总数是:卡特兰数F[n]*n!

程序:

 import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String args[]){
Scanner cin=new Scanner(System.in);
BigInteger h[]=new BigInteger[302];
BigInteger a[]=new BigInteger[302];
BigInteger fact=BigInteger.valueOf(1);
int n;
h[1]=BigInteger.valueOf(1);
a[1]=BigInteger.valueOf(1);
for(int i=2;i<=300;i++){
fact=fact.multiply(BigInteger.valueOf(i));
BigInteger k=BigInteger.valueOf(i*4-2);
h[i]=h[i-1].multiply(k);
h[i]=h[i].divide(BigInteger.valueOf(i+1));
a[i]=h[i].multiply(fact);
//System.out.println(" "+h[i]+" "+fact+" "+a[i]);
}
while(true){
n=cin.nextInt();
if(n==0)
break;
System.out.println(a[n]);
}
}
}

UVa 10007 - Count the Trees(卡特兰数+阶乘+大数)的更多相关文章

  1. uva 10007 Count the Trees

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...

  2. hdu 1130How Many Trees?(卡特兰数)

    卡特兰数又称卡塔兰数,英文名Catalan number,是组合数学中一个常出现在各种计数问题中出现的数列. 以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)的名字来命名,其前几项为(从第零 ...

  3. nyoj 28-大数阶乘 (大数模板)

    28-大数阶乘 内存限制:64MB 时间限制:3000ms Special Judge: No accepted:19 submit:39 题目描述: 我们都知道如何计算一个数的阶乘,可是,如果这个数 ...

  4. hdu 1023 卡特兰数《 大数》java

    Train Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  5. HDU-1134 卡特兰数+java大数模板

    题意: 给你一个n,然后1,2,3...2n-1,2n围一圈,让每个数都能用一条线配对并且线与线之间不能交叉,问有几种方法数. 思路: 1 可以和2,4,6...连接.假如   一共有8个数,1和2连 ...

  6. Uva 10007 / HDU 1131 - Count the Trees (卡特兰数)

     Count the Trees  Another common social inability is known as ACM (Abnormally Compulsive Meditation) ...

  7. uva 1478 - Delta Wave(递推+大数+卡特兰数+组合数学)

    option=com_onlinejudge&Itemid=8&category=471&page=show_problem&problem=4224" st ...

  8. 牛客网 牛客小白月赛1 I.あなたの蛙が帰っています-卡特兰数,组合数阶乘逆元快速幂

    I.あなたの蛙が帰っています   链接:https://www.nowcoder.com/acm/contest/85/I来源:牛客网     这个题有点意思,是卡特兰数,自行百度就可以.卡特兰数用处 ...

  9. poj 1095 Trees Made to Order 卡特兰数

    这题用到了卡特兰数,详情见:http://www.cnblogs.com/jackge/archive/2013/05/19/3086519.html 解体思路详见:http://blog.csdn. ...

随机推荐

  1. (转) java 简单工厂模式(实现一个计算器)

    package com.simpleFactory; /** * 运算类 * @author Administrator * */ public class Operation { private d ...

  2. IOS 跳转时传参数的常用方法

    在iOS开发中常用的参数传递有以下几种方法: 采用代理模式 采用iOS消息机制 通过NSDefault存储(或者文件.数据库存储等) 通过AppDelegate定义全局变量(或者使用UIApplica ...

  3. 【C51】单片机定时器介绍

    标准51架构的单片机有2个定时器 :T0  和  T1,他们2个的用法几乎一样.下面主要讲T0定时器的用法. 初步认知 定时器 和 计数器 都是单片机中同一个模块.他们的实质都是: 加法存储计数器.对 ...

  4. javascript === 与 ==

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. javascript正则表达式(一)

    元字符 ( [ { \ ^ $ | ) ? * + . 预定义的特殊字符 字符 正则 描述 \t /\t/ 制表符 \n /\n/ 制表符 \r /\r/ 回车符 \f /\f/ 换页符 \a /\a ...

  6. [LeetCode]题解(python):060-Permutation Sequence

    题目来源 https://leetcode.com/problems/permutation-sequence/ The set [1,2,3,…,n] contains a total of n! ...

  7. 去除undefined和末尾逗号及把字符串数字转成数字数组的方法

    function removeundefined(str){   var v=new Array(),b="";   var tmp=fil(str); for(var i=0;i ...

  8. Hibernate报错解决Error parsing JNDI name [],Need to specify class name

    能实现写数据,但是报错. 出错信息: 十月 21, 2016 3:46:18 下午 org.hibernate.Version logVersionINFO: HHH000412: Hibernate ...

  9. Linux console on LCD

    有时候需要将开机启动的信息输出到LCD上,并且在终端上进行调试.本文记录更改的方法. 参考链接 http://blog.csdn.net/chenbang110/article/details/787 ...

  10. calc 的使用

    通常情况下,一个元素节点使用固定定位absolute和固定定位fixed,会遇到一个问题,如果设置100% ,此时你在对他设置padding,border,margin,它就会撑满 具体情况如下图: