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. hdu 6319 逆序建单调队列

    题目传送门//res tp hdu 维护递增单调队列 根据数据范围推测应为O(n)的. 我们需要维护一个区间的信息,区间内信息是"有序"的,同时需要在O(1)的时间进行相邻区间的信 ...

  2. 剪花布条 HDU - 2087(kmp,求不重叠匹配个数)

    Problem Description 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? Input 输入 ...

  3. 顶级Python库

    绝不能错过的24个顶级Python库 Python有以下三个特点: · 易用性和灵活性 · 全行业高接受度:Python无疑是业界最流行的数据科学语言 · 用于数据科学的Python库的数量优势 事实 ...

  4. 【数据结构】P1996 约瑟夫问题

    [题目链接] https://www.luogu.org/problem/P1996 题目描述 n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数, ...

  5. 常用javascript对象——Date对象

    创建 Date 对象的语法: new Date(); 1:Date 对象属性 <!DOCTYPE html> <html> <head> <meta char ...

  6. javascript——获取元素方式

    //1:依据id //var element = document.getElementById("test"); console.log(element); //2:依据clas ...

  7. DX使用随记--GroupControl

    1. 创建按钮: (1)添加引用:Imports DevExpress.XtraEditors.ButtonsPanelControl (2)添加按钮语句:GroupControl1.CustomHe ...

  8. Spring Cloud(一)服务的注册与发现(Eureka)

    Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集 ...

  9. vue父组件传值和子组件触发父组件方法

    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script> <scr ...

  10. Win10系统C盘空间不足怎么安全清理?

    我们在使用电脑时,系统经常会产生许多垃圾文件,占用磁盘存储空间.在Win10系统中,我们可以通过清理系统盘的临时文件来释放一些存储空间.下面好系统U盘启动就来告诉你具体的方法步骤. Win10系统C盘 ...