How Many Trees?

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 1105 Accepted Submission(s): 577
 
Problem Description
A binary search tree is a binary tree with root k such that any node v reachable from its left has label (v) <label (k) and any node w reachable from its right has label (w) > label (k). It is a search structure which can find a node with label x in O(n log
n) average time, where n is the size of the tree (number of vertices). 



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? 
 
Input
The input will contain a number 1 <= i <= 100 per line representing the number of elements of the set.
 
Output
You have to print a line in the output for each entry with the answer to the previous question.
 
Sample Input
1
2
3
 
Sample Output
1
2
5
 

Train Problem II

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 730 Accepted Submission(s): 430
 
Problem Description
As we all know the Train Problem I, the boss of the Ignatius Train Station want to know if all the trains come in strict-increasing order, how many orders that all the trains can get out of the railway.
 
Input
The input contains several test cases. Each test cases consists of a number N(1<=N<=100). The input is terminated by the end of file.
 
Output


            For each test case, you should output how many ways that all the trains can get out of the railway.
 
Sample Input
1
2
3
10
 
Sample Output
1
2
5
16796
Hint
The result will be very large, so you may not process it by 32-bit integers.

#include<iostream>

#include<cstdio>

#include<cstring>

int h[1001][1001];

int Catlan()

{

    memset(h,0,sizeof(h));

    h[1][0]=1;

    h[1][1]=1;

    h[2][0]=1;

    h[2][1]=2;

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

    {

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

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

             {

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

                 if(h[i][j]>=10)

                   {

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

                       h[i][j]%=10;

                   }

             }

        len=h[i][len+1]==0?len:len+1;

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

         {

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

             h[i][len]%=10;

             len++;

         }

         int yu=0;

        for(int k=len;k>=1;k--)

        {

            int temp=(h[i][k]+yu*10)/(i+1);

            yu=(h[i][k]+yu*10)%(i+1);

            h[i][k]=temp;

        }

        while(!h[i][len])

            len--;

        h[i][0]=len;

    }

}

int main()

{

     int n;

     Catlan();

     while(~scanf("%d",&n))

       {

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

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

          printf("\n");

       }

     return 0;

}

/******两个典型的卡塔兰数模板题(模板到代码都可以一样),火车那个的话以0表示出栈,1表示进栈,就看得出来了,二叉树的话,假设N个节点,根节点必须要有一个,接下来,可以左边0个,右边n-1个或左边1个,右边N-1个

或,,,,左边N-1个,右边0个,也看得出来是卡塔兰 
 万圣节之夜脱单的同学都和女票出去了,还在刷题,,Orz

不过刷题的感觉还是蛮不错的,哈哈,喜欢这种运动+刷题+和朋友在一起+泡图书馆的感觉!!

hdu 1023 hdu 1131的更多相关文章

  1. HDU 1023 Catalan数+高精度

    链接:HDU 1023 /**************************************** * author : Grant Yuan * time : 2014/10/19 15:5 ...

  2. HDU - 2222,HDU - 2896,HDU - 3065,ZOJ - 3430 AC自动机求文本串和模式串信息(模板题)

    最近正在学AC自动机,按照惯例需要刷一套kuangbin的AC自动机专题巩固 在网上看过很多模板,感觉kuangbin大神的模板最为简洁,于是就选择了用kuangbin大神的模板. AC自动机其实就是 ...

  3. hdu 1023 Train Problem II

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1212 Train Problem II Description As we all know the ...

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

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

  5. HDU——1023 Train Problem II

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

  6. HDU 1023 Traning Problem (2) 高精度卡特兰数

    Train Problem II Time Limit: 1000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & %I64u Sub ...

  7. hdu 1023 卡特兰数+高精度

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

  8. HDU 1023 Train Problem II (卡特兰数,经典)

    题意: 给出一个数字n,假设火车从1~n的顺序分别进站,求有多少种出站序列. 思路: 卡特兰数的经典例子.n<101,用递推式解决.需要使用到大数.n=100时大概有200位以下. #inclu ...

  9. hdu 1023(java实现进度计算)

    题意:就是问你火车出战的方案数. 分析:卡特兰数的模板题,递推公式:a[n]=a[n-1]*(4*n-2)/(n+1). java代码实现: import java.util.*; import ja ...

随机推荐

  1. spring cloud链路追踪组件sleuth和zipkin

    spring cloud链路追踪组件sleuth     主要作用就是日志埋点 操作方法 1.增加依赖             <dependency>      <groupId& ...

  2. 针对Web的信息搜集

    信息收集(Information Gathering),信息收集是指通过各种方式获取所需要的信息,在整个渗透测试环节中,信息搜集是整个渗透过程中最为重要的一环,信息搜集可占据整个渗透测试80%左右的工 ...

  3. IntelliJ IDEA热部署插件JRebel免费激活图文教程(持续更新)转载

    之前教了大家如何免费激活IDEA,大家学会了吗?今天再来教大家如何免费激活JRebel插件,实现真正的热部署,无论是改了代码片段还是配置文件,都可以做到不用重新启动就生效,这种酸爽,谁用谁知道! 这次 ...

  4. 数据库(mysql和oracle)

    1.   mysql索引:    https://www.jikewenku.com/22030.html 2.

  5. 怎样使用yum安装nginx

    yum install -y nginx 以上.

  6. react import 配置路径别名'@',简化import Component的方式

    摘要 在react中,大多数业务逻辑都组件化:极大的减轻了代码的冗余度,如果组件的层次比较深的话,组件的import就比较费劲,在import时使用“../../components/test”的方式 ...

  7. oracle的listagg函数

    今天需要将 BDST_ID相同的PROJECT_ID用逗号分隔拼成一个字符串,于是想到了oracle的listagg函数 表名为PM_BDST_PROJECT select tt.BDST_ID, l ...

  8. JAVA对ArrayList排序

    ava如何对ArrayList中对象按照该对象某属性排序 增加排序功能,打印时:输出学生对象的时候,需要先按照年龄排序,如果年龄相同,则按照姓名排序,如果姓名也相同,则按照学号排序. Code hig ...

  9. Oracle cmd 命令

    1.登陆 输入sqlplus,回车.然后输入用户名和密码. 退出exit. 2.查看服务 Window打开服务的cmd命令 windows +R :services.msc---本地服务设置 rege ...

  10. 学习手写vue,理解原理

    class Compiler{ constructor(el,vm){ // 判断el属性 是不是 一个元素, 如果不是就获取 this.el = this.isElementNode(el)?el: ...