********Catalan数*********
Catalan数(卡塔兰数)取自组合数学中一个常在各种计数问题出现的数列。卡塔兰数的一般项公式为:
令其为h(n)的话,满足h(n)=h(0)*h(n-1)+h(1)*h(n-2)+......+h(n-1)h(0) (n>=2).若从中取出的数叫做第n个Catalan数,前几个Catalan数是:
1,1,2,5,14,42,132...
分类:
其他好文 时间:
2014-09-09 18:29:59
阅读次数:
243
问题的由来:编号为1到n的n个元素,顺序的进入一个栈,则可能的出栈序列有多少种?对问题的转化与思考:n个元素进栈和出栈,总共要经历n次进栈和n次出栈。这就相当于对这2n步操作进行排列。问题等价于:n个1和n个0组成一2n位的2进制数,要求从左到右扫描,1的累计数不小于0的累计数,试求满足这条件的数有...
分类:
其他好文 时间:
2014-08-29 19:50:48
阅读次数:
271
一个Catalan数的题,打表对每个数都求一次逆元会T,于是问到了一种求阶乘逆元的打表新方法。 比如打一个1~n的阶乘的逆元的表,假如叫inv[n],可以先用费马小定理什么的求出inv[n],再用递推公式求出前面的项。 我们记数字 x 的逆元为f(x) (%MOD)。 因为 n! = (n-...
分类:
其他好文 时间:
2014-08-27 18:09:18
阅读次数:
227
Delta Wave
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 741 Accepted Submission(s): 243
Problem Description
A delta wave is a...
分类:
其他好文 时间:
2014-08-25 19:16:24
阅读次数:
290
Counting Binary Trees
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 564 Accepted Submission(s): 184
Problem Description
There ...
分类:
其他好文 时间:
2014-08-25 17:07:44
阅读次数:
266
HDU 3240 Counting Binary Trees(组合数学-斯特林数,数论-整数快速幂,数论-求逆元)
题目大意:
问你不超过n个节点的二叉树的方案数,结果要对m求余。
解题思路:
方案数可以划分左右两边划分子问题也就是 h(n)=h(0)*h(n-1)+h(1)*(h-2)+..................+h(n-1)*h(0),一看就是卡特兰数,
关于卡特兰数必须要nlg^n的左右效率的算法解决
百度一下,知道:
令h(0)=1,h(1)=1,
catalan数满足:
递推式[1]...
分类:
其他好文 时间:
2014-08-25 14:59:24
阅读次数:
223
[问题描述]在一个凸多边形中,通过若干条互不相交的对角线,把这个多边形剖分成了若干个三角形。现在的任务是从键盘输入凸多边形的边数n,求不同剖分的方案数Cn。比如当n=5时,有5种不同的方案,所以Cn=5。[问题分析]Catalan数……估计都知道,我就不解释了,直接上代码:这是我写的(好像很短啊,最...
分类:
其他好文 时间:
2014-08-15 15:57:28
阅读次数:
234
一个出栈有多少种顺序的问题。一般都知道是Catalan数了。
问题是这个Catalan数很大,故此需要使用高精度计算。
而且打表会速度快很多,打表公式要熟记:
Catalan数公式 Cn=C(2n,n) / (n+1);
递推公式 C(n ) = C(n-1)*(4*n-2) / (n+1)
高精度乘以一个整数和高精度除以一个整数的知识,这样还是使用整数数组比较好计算,如果使用str...
分类:
其他好文 时间:
2014-08-15 12:57:58
阅读次数:
263
(ACM题解)“母函数”又称“生成函数”,最早是由法国数学家LaplaceP.S.在其1812年出版的《概率的分析理论》中提出,生成函数的应用简单来说在于研究未知(通项)数列规律,用这种方法在给出递推式的情况下求出数列的通项,生成函数是推导Fibonacci数列的通项公式方法之一,另外组合数学中的Catalan数也可以通过生成函数的方法得到。...
分类:
其他好文 时间:
2014-08-11 17:59:02
阅读次数:
244
先看2个问题:1.n个元素进栈(栈无穷大),进栈顺序为1,2,3,....n,那么有多少种出栈顺序?先从简单的入手:n=1,当然只有1种;n=2,可以是1,2 也可以是2,1;那么有2种;n=3,可以是1,2,3或1,3,2或2,1,3或2,3,1或3,2,1;一共5种;容易联想到可能有一个通项公式...
分类:
其他好文 时间:
2014-07-29 12:14:46
阅读次数:
222