hdu1023-----卡特兰数
原题链接点这里
这道题就是卡特兰数+大数
卡特兰数的两种解法
一、令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-----卡特兰数相关推荐
- Catalan Numbers 卡特兰数
卡特兰数源于组合数学,递推式为 H[1] = 1:H[n] = H[n-1]*(4*n-2)/(n+1){n>=2}: 卡塔兰数的渐近增长为 下面给出几个求卡特兰数的公式,用h(n)表示卡特兰数 ...
- Catalan数——卡特兰数
今天阿里淘宝笔试中碰到两道组合数学题,感觉非常亲切,但是笔试中失踪推导不出来 后来查了下,原来是Catalan数.悲剧啊,现在整理一下 Catalan数--卡特兰数] 一.Catalan数的定义令h( ...
- 【COGS】2287:[HZOI 2015]疯狂的机器人 FFT+卡特兰数+排列组合
[题意][COGS 2287][HZOI 2015]疯狂的机器人 [算法]FFT+卡特兰数+排列组合 [题解]先考虑一维的情况,支持+1和-1,前缀和不能为负数,就是卡特兰数的形式. 设C(n)表示第 ...
- 关于卡特兰数及典型例题
关于卡特兰数: f[0] = 1, f[1] = 1; for(int i = 2; i <= n; i++)for(int j = 0; j < i; j++)f[i] += f[j] ...
- hdu1032 Train Problem II (卡特兰数)
题意: 给你一个数n,表示有n辆火车,编号从1到n,入站,问你有多少种出站的可能. (题于文末) 知识点: ps:百度百科的卡特兰数讲的不错,注意看其参考的博客. 卡特兰数(Catalan):前 ...
- 先序序列为a、b、c、d的不同二叉树的个数是多少(卡特兰数)
除了逻辑清晰的挨个画出来之外,还有一种方法需要大家牢记! 因为前序序列和中序序列可以唯一地确定一棵二叉树,并且题目已经给出了先序序列,所以我们只需要知道由该先序序列可以确定多少个中序序列即可,确定多少 ...
- zcmu-1934(卡特兰数大数取模(逆元))
1934: ly的二叉树 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 42 Solved: 9 [Submit][Status][Web Boar ...
- 洛谷 P1044 栈 [卡特兰数]
题目背景 栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表. 栈有两种最重要的操作,即 poppop (从栈顶弹出一个元素)和 pushpush (将一个元素进栈). 栈 ...
- BZOJ4001[TJOI2015]概率论——卡特兰数
题目描述 输入 输入一个正整数N,代表有根树的结点数 输出 输出这棵树期望的叶子节点数.要求误差小于1e-9 样例输入 1 样例输出 1.000000000 提示 1<=N<=10^9 设 ...
- C++打印0到N的Catalan数卡特兰数(附完整源码)
打印0到N的Catalan数卡特兰数 打印0到N的Catalan数卡特兰数算法的完整源码(定义,实现,main函数测试) 打印0到N的Catalan数卡特兰数算法的完整源码(定义,实现,main函数测 ...
最新文章
- 3D打印火箭发动机真被做出来了!首次地面全周期点火实测,发射报价不到猎鹰9的五分之一...
- Blend学习资料总结
- OS_CORE.C(5)
- Linux 系统 vsftpd时区问题的解决
- JDK+SDK 环境变量记录
- PHP 反射机制Reflection
- 周鸿祎在人民日报撰文,呼吁推行网络安全大战略
- 简易聊天软件开发(python+socket)
- 服务器驱动文件丢失恢复教程,服务器驱动丢失。
- php程序 导出表格文件后缀,PHPExcel生成Excel文件---提示导出文件或者文件扩展名不一致,或导出的文件或文件扩展名无效...
- Python的图像处理库Pillow
- 计算机室教师使用制度,[最新]教师计算机室管理制度
- C++笔记(《C++新经典》)
- 石川圖 / 鱼骨图 / 關鍵要因圖 / 因果圖
- 对待Petya勒索病毒的解决办法
- vscode造成c盘空间占用剧增
- css背景图做水印,css给图片添加水印的方法
- 【华为云技术分享】如何快速实现鲲鹏弹性云服务器Node.js部署和高可用性?
- tzc 1292 排序
- 基于Springboot开发实现二手交易商城
热门文章
- 大数据挑战:敢不敢不要加入人的判断?
- Unix编程之size_t、ssize_t
- C++ 从零单排(2)-基础知识二
- 如何将一个String和多个String值进行比较
- IntelliJ IDEA 中 右键新建时,选项没有Java class
- c# implicit explicit关键字(隐式和显式数据类型转换)
- Windows下CodeLite支持中文的正确设置方法
- GPIO驱动实例:操作LED开关
- ★☆★书已到手《Java程序员,上班那点事儿》正式上架★☆★
- 网络工程职业规划【转载】