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;

}

最新文章

  1. iOS - NSString去掉回车与换行符
  2. OpenGL的几何变换3之内观察全景图
  3. 如何用python语句获得Python的安装目录
  4. BZOJ 3570 动物园
  5. Android Permission denied 错误 ( 附Android权限大全 )
  6. 使用HAXM加速Android虚拟机
  7. 探寻 webpack 插件机制
  8. Dynamics CRM2016 Web API之通过实体的primary key查询记录(二)
  9. 【转】安装ambari的时候遇到的ambari和hadoop问题集
  10. docker --环境变量制作模板
  11. python(32)——【shelve模块】【xml模块】
  12. 使用appledoc 生成技术API文档具体解释
  13. php解析mpp文件中的多级任务
  14. Google Review中Zlib.Portable报错的一种排查解决方案
  15. mtv网站架构模式适合企业网站应用吗?
  16. Flask 的一个小应用程序
  17. NodeJS NPM HTTPS
  18. CentOS7.5安装notepadqq
  19. Linux查看系统开机时间(转)
  20. 【转】Web实时通信之Socket.IO ,真正的兼容ie

热门文章

  1. linux node 安装
  2. GCN代码分析 2019.03.12 22:34:54字数 560阅读 5714 本文主要对GCN源码进行分析。
  3. 怎样使用 v-if 实现 html 元素的显示 / 隐藏?
  4. MapReduces计数实验
  5. bat 将war文件转换成ear文件
  6. 动画方案 Lottie 学习(一)之基础
  7. Joomla 3.0.0 - 3.4.6 RCE漏洞分析记录
  8. odoo字段属性
  9. Oracle【三表的联合查询】
  10. js基本事件