原题链接点这里

这道题就是卡特兰数+大数

卡特兰数的两种解法

一、令h(0)=1,h(1)=1,catalan数满足递推式 :

h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)*h(0) (n>=2)

二、递推式

h(n)=h(n-1)*(4*n-2)/(n+1);

三、公式

h(n)=C(2n,n)/(n+1) (n=0,1,2,...)

卡特兰数的应用:

1、括号化

矩阵连乘: P=a1×a2×a3×……×an,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案?(h(n)种)

2、出栈次序

一个栈(无穷大)的进栈序列为1,2,3,…,n,有多少个不同的出栈序列

3、凸多边形三角划分

在一个凸多边形中,通过若干条互不相交的对角线,把这个多边形划分成了若干个三角形。任务是键盘上输入凸多边形的边数n,求不同划分的方案数f(n)

4、给定节点组成二叉搜索树

给定N个节点,能构成多少种不同的二叉搜索树?

(能构成h(N)个)注意(这个公式的下标是从h(0)=1开始的)

5、n对括号正确匹配数目

给定n对括号,求括号正确配对的字符串数

-------------------------摘自百度百科

下面给出这道题的代码  因为数字很大  所以用的java

顺便提一下 java创建数组的方法

int[] arr=new int[6];//BigInteger a[]=new BigInteger[107];

hdu1023 代码

import java.io.*;
import java.math.*;
import java.util.*;
public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner cin=new Scanner(System.in);BigInteger a[]=new BigInteger[107];s[1]=BigInteger.ONE;for(int i=2;i<105;i++){a[i]=a[i-1].multiply(BigInteger.valueOf(4*i-2)).divide(BigInteger.valueOf(i+1));}while(cin.hasNext()){int n=cin.nextInt();System.out.println(a[n]);}cin.close();}}

hdu1023-----卡特兰数相关推荐

  1. Catalan Numbers 卡特兰数

    卡特兰数源于组合数学,递推式为 H[1] = 1:H[n] = H[n-1]*(4*n-2)/(n+1){n>=2}: 卡塔兰数的渐近增长为 下面给出几个求卡特兰数的公式,用h(n)表示卡特兰数 ...

  2. Catalan数——卡特兰数

    今天阿里淘宝笔试中碰到两道组合数学题,感觉非常亲切,但是笔试中失踪推导不出来 后来查了下,原来是Catalan数.悲剧啊,现在整理一下 Catalan数--卡特兰数] 一.Catalan数的定义令h( ...

  3. 【COGS】2287:[HZOI 2015]疯狂的机器人 FFT+卡特兰数+排列组合

    [题意][COGS 2287][HZOI 2015]疯狂的机器人 [算法]FFT+卡特兰数+排列组合 [题解]先考虑一维的情况,支持+1和-1,前缀和不能为负数,就是卡特兰数的形式. 设C(n)表示第 ...

  4. 关于卡特兰数及典型例题

    关于卡特兰数: f[0] = 1, f[1] = 1; for(int i = 2; i <= n; i++)for(int j = 0; j < i; j++)f[i] += f[j] ...

  5. hdu1032 Train Problem II (卡特兰数)

    题意: 给你一个数n,表示有n辆火车,编号从1到n,入站,问你有多少种出站的可能.    (题于文末) 知识点: ps:百度百科的卡特兰数讲的不错,注意看其参考的博客. 卡特兰数(Catalan):前 ...

  6. 先序序列为a、b、c、d的不同二叉树的个数是多少(卡特兰数)

    除了逻辑清晰的挨个画出来之外,还有一种方法需要大家牢记! 因为前序序列和中序序列可以唯一地确定一棵二叉树,并且题目已经给出了先序序列,所以我们只需要知道由该先序序列可以确定多少个中序序列即可,确定多少 ...

  7. zcmu-1934(卡特兰数大数取模(逆元))

    1934: ly的二叉树 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 42  Solved: 9 [Submit][Status][Web Boar ...

  8. 洛谷 P1044 栈 [卡特兰数]

    题目背景 栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表. 栈有两种最重要的操作,即 poppop (从栈顶弹出一个元素)和 pushpush (将一个元素进栈). 栈 ...

  9. BZOJ4001[TJOI2015]概率论——卡特兰数

    题目描述 输入 输入一个正整数N,代表有根树的结点数 输出 输出这棵树期望的叶子节点数.要求误差小于1e-9 样例输入 1 样例输出 1.000000000 提示 1<=N<=10^9 设 ...

  10. C++打印0到N的Catalan数卡特兰数(附完整源码)

    打印0到N的Catalan数卡特兰数 打印0到N的Catalan数卡特兰数算法的完整源码(定义,实现,main函数测试) 打印0到N的Catalan数卡特兰数算法的完整源码(定义,实现,main函数测 ...

最新文章

  1. 3D打印火箭发动机真被做出来了!首次地面全周期点火实测,发射报价不到猎鹰9的五分之一...
  2. Blend学习资料总结
  3. OS_CORE.C(5)
  4. Linux 系统 vsftpd时区问题的解决
  5. JDK+SDK 环境变量记录
  6. PHP 反射机制Reflection
  7. 周鸿祎在人民日报撰文,呼吁推行网络安全大战略
  8. 简易聊天软件开发(python+socket)
  9. 服务器驱动文件丢失恢复教程,服务器驱动丢失。
  10. php程序 导出表格文件后缀,PHPExcel生成Excel文件---提示导出文件或者文件扩展名不一致,或导出的文件或文件扩展名无效...
  11. Python的图像处理库Pillow
  12. 计算机室教师使用制度,[最新]教师计算机室管理制度
  13. C++笔记(《C++新经典》)
  14. 石川圖 / 鱼骨图 / 關鍵要因圖 / 因果圖
  15. 对待Petya勒索病毒的解决办法
  16. vscode造成c盘空间占用剧增
  17. css背景图做水印,css给图片添加水印的方法
  18. 【华为云技术分享】如何快速实现鲲鹏弹性云服务器Node.js部署和高可用性?
  19. tzc 1292 排序
  20. 基于Springboot开发实现二手交易商城

热门文章

  1. 大数据挑战:敢不敢不要加入人的判断?
  2. Unix编程之size_t、ssize_t
  3. C++ 从零单排(2)-基础知识二
  4. 如何将一个String和多个String值进行比较
  5. IntelliJ IDEA 中 右键新建时,选项没有Java class
  6. c# implicit explicit关键字(隐式和显式数据类型转换)
  7. Windows下CodeLite支持中文的正确设置方法
  8. GPIO驱动实例:操作LED开关
  9. ★☆★书已到手《Java程序员,上班那点事儿》正式上架★☆★
  10. 网络工程职业规划【转载】