Count the Trees





Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 1840    Accepted Submission(s): 1221









Problem Description

Another common social inability is known as ACM (Abnormally Compulsive Meditation). This psychological disorder is somewhat common among programmers. It can be described as the temporary (although frequent) loss of the faculty of speech when the whole power
of the brain is applied to something extremely interesting or challenging. 

Juan is a very gifted programmer, and has a severe case of ACM (he even participated in an ACM world championship a few months ago). Lately, his loved ones are worried about him, because he has found a new exciting problem to exercise his intellectual powers,
and he has been speechless for several weeks now. The problem is the determination of the number of different labeled binary trees that can be built using exactly n different elements. 





For example, given one element A, just one binary tree can be formed (using A as the root of the tree). With two elements, A and B, four different binary trees can be created, as shown in the figure. 





If you are able to provide a solution for this problem, Juan will be able to talk again, and his friends and family will be forever grateful. 





 





Input

The input will consist of several input cases, one per line. Each input case will be specified by the number n ( 1 ≤ n ≤ 100 ) of different elements that must be used to form the trees. A number 0 will mark the end of input and is not to be processed. 

 





Output

For each input case print the number of binary trees that can be built using the n elements, followed by a newline character. 

 





Sample Input

1

2

10

25

0

 





Sample Output

1

4

60949324800

75414671852339208296275849248768000000

 

 

#include<iostream>

#include<cstdio>

#include<cstring>

#include<cmath>

using namespace std;

int h[102][1001];

int main()

{

   int n;

   h[1][0]=1;h[1][1]=1;

   h[2][0]=1;h[2][1]=1;

   for(int i=3;i<=100;i++)

   {

       int temp=0,jin=0;

       for(int j=1;j<=h[i-1][0];j++)

            {

                temp=h[i-1][j]*(4*i-2);

                h[i][j]=temp%10;

                h[i][j+1]=+temp/10;

            }

        int t=h[i-1][0];

       t=h[i][t+1]>0?t+1:t;

       while(h[i][t]>=10)

       {

            h[i][t+1]=h[i][t]/10;

            h[i][t]%=10;

            t++;

       }

       for(int j=t;j>=2;j--)

            {

                temp=h[i][j];

                h[i][j]=temp/(i+1);

                h[i][j-1]+=temp%(i+1)*10;

            }

   }

   for(int i=2;i<=100;i++)

   {

        for(int j=1;j<=i;j++)

              for(int k=1;k<=h[i][0];k++)

                    h[i][k]*=j;

         for(int t=1;t<=h[i][0];t++)

       {

             int temp=h[i][t];

             h[i][t]=temp%10;

             h[i][t+1]+=temp/10;

       }

        int t=h[i-1][0];

       while(h[i][t]>=10)

       {

            h[i][t+1]=h[i][t]/10;

            h[i][t]%=10;

            t++;

       }

        h[i][0]=t;

   }

   while(cin>>n&&n)

   {

         for(int i=h[n][0];i>=1;i--)

            printf("%d",h[n][i]);

         printf("\n");

   }

   return 0;

}

未AC的更多相关文章

  1. 九度OJ 1016 火星A + B 未AC版,整型存储不下

    #include <iostream> #include <string.h> #include <sstream> #include <math.h> ...

  2. Poj 1755Triathlon 未Ac,先mark

    地址:http://poj.org/problem?id=1755 题目: Triathlon Time Limit: 1000MS   Memory Limit: 10000K Total Subm ...

  3. 字符串[未AC](后缀自动机):HEOI 2016 str

    超级恶心,先后用set维护right,再用主席树维护,全部超时,本地测是AC的.放心,BZOJ上还是1S限制,貌似只有常数优化到一定境界的人才能AC吧. 总之我是精神胜利了哦耶QAQ #include ...

  4. UOJ.87.mx的仙人掌(圆方树 虚树)(未AC)

    题目链接 本代码10分(感觉速度还行..). 建圆方树,预处理一些东西.对询问建虚树. 对于虚树上的圆点直接做:对于方点特判,枚举其所有儿子,如果子节点不在该方点代表的环中,跳到那个点并更新其val, ...

  5. UVA1625Color Lenth(DP+LCS变形 未AC)

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=105116#problem/C 紫书P276 res[i][j]表示第一个序列移动i个,第 ...

  6. NOIp 2014 #2 联合权值 Label:图论 !!!未AC

    题目描述 无向连通图G 有n 个点,n - 1 条边.点从1 到n 依次编号,编号为 i 的点的权值为W i ,每条边的长度均为1 .图上两点( u , v ) 的距离定义为u 点到v 点的最短距离. ...

  7. ZOJ3229 Shoot the Bullet [未AC]

    Time Limit: 2 Seconds      Memory Limit: 32768 KB      Special Judge Gensokyo is a world which exist ...

  8. 2833 奇怪的梦境 未AC

    2833 奇怪的梦境 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold         题目描述 Description Aiden陷入了一个奇怪的梦境:他被困在一个小 ...

  9. Poj 3057 未AC http://poj.org/showsource?solution_id=15175171

    <span style="font-size:18px;">#include <iostream> #include <cstdio> #inc ...

随机推荐

  1. winform 中如何获取debug目录的路径

    项目中需要在debug启动目录创建文件夹,所以先获取debug路径: var debugPath = System.AppDomain.CurrentDomain.BaseDirectory;

  2. win10 Snipaste 截图软件

    安装教程:搜索 snipaste,网上可以直接下载 使用教程: 1)截图按钮:F1 2)粘贴按钮:F3

  3. Java并发编程——线程的基本概念和创建

    一.线程的基本概念: 1.什么是进程.什么是是线程.多线程? 进程:一个正在运行的程序(程序进入内存运行就变成了一个进程).比如QQ程序就是一个进程. 线程:线程是进程中的一个执行单元,负责当前进程中 ...

  4. 原型相关的知识点-new的实现原理

    let obj = {}let fn = function(){ this.content = 'zhangsan'} let fn2 = new fn() fn2是fn实例化出来的一个对象,要了解n ...

  5. 把json1赋值给json2,修改json2的属性,json1的属性也一起变化

    let json1 = { a: 1}let json2 = json1json2.a = 5 console.log(json1.a) // 5 console.log(json2.a) // 5 ...

  6. mysql计算QPS

    首先连接上mysql: $ mysql -h .x -P3306 -uusername -p123456 进入Mysql之后,查询general_log: mysql> SHOW VARIABL ...

  7. get获取后台数据

    let url = $.getCookie('prefixUrl')+'/currencyRatesManage/getCurrency'; let vm=this; $.ajax({ url: ur ...

  8. Vue页面缓存和不缓存的方法

    第一步 在app中设置需要缓存的div //缓存的页面 <keep-alive> <router-view v-if="$route.meta.keepAlive" ...

  9. Oracle12cCDB和PDB数据库的启动与关闭说明

    在Oracle 12c中,分CDB 和PDB,他们的启动和关闭操作整理如下. 1 Container Database (CDB) 对于CDB,启动和关闭与之前传统的方式一样,具体语法如下: STAR ...

  10. 1、Bash Shell

    一.什么是Bash shell BashShell是一个命令解释器,它在操作系统的最外层,负责用户程序与内核进行交互操作的一种接口,将用户输入的命令翻译给操作系统,并将处理后的结果输出至屏幕. 当我们 ...