题目链接
题意:给出一个序列,长度为n,表示有n个x(节点),可以添加任意括号,问说形成的串为非二叉表达式的有多少个。
思路:用总数减去二叉表达式的数量。二叉表达式可以用Catalan数求解,至于总数的话,用dp求解。dp[i][0]表示在第i个位置可以被拆分成两个子树,dp[i][1]表示有一个子树。
代码:
#include
#include
#includ...
分类:
其他好文 时间:
2014-09-18 11:28:53
阅读次数:
161
一、介绍
卡塔兰数是组合数学中一个常在各种计数问题中出现的数列。以比利时的数学家欧仁·查理·卡塔兰(1814–1894)命名。
历史上,清代数学家明安图(1692年-1763年)在其《割圜密率捷法》最早用到“卡塔兰数”。
卡特兰序列的前11项为:1, 1, 2, 5,14, 42, 132, 429, 1430, 4862, 16796,。...
分类:
其他好文 时间:
2014-09-12 19:17:24
阅读次数:
276
********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
catalan卡特兰数:卡塔兰数是组合数学中一个常出现在各种计数问题中出现的数例。由比利时的数学家欧仁·查理·卡塔兰(1814-1894)命名。卡塔兰数的一般公式为 C(2n,n)/(n+1)。
一般计算式为(递归):h(n)=(4n-2)/(n+1)*h(n-1)
(n>1),h(0)=1。
计算单个catalan程序:
ll catalan(int n)
{
if(n==0...
分类:
其他好文 时间:
2014-08-20 21:13:23
阅读次数:
350
[问题描述]在一个凸多边形中,通过若干条互不相交的对角线,把这个多边形剖分成了若干个三角形。现在的任务是从键盘输入凸多边形的边数n,求不同剖分的方案数Cn。比如当n=5时,有5种不同的方案,所以Cn=5。[问题分析]Catalan数……估计都知道,我就不解释了,直接上代码:这是我写的(好像很短啊,最...
分类:
其他好文 时间:
2014-08-15 15:57:28
阅读次数:
234