看看Catalan数的公式:为 Catalan(n) = C(2n, n) / n+1 = C(2n, n) - C(2n, n-1); (公式0)
然后利用全排序表达:Catalan(n) = (2n)! / (n+1) * (n)!*n!;
那么Catalan(n-1) = (2(n-1))! / n * (n-1)!(n-1)!;
然后两者相除就得到:Catalan...
分类:
其他好文 时间:
2014-06-22 16:14:08
阅读次数:
206
什么是Catalan数说到Catalan数,就不得不提及Catalan序列,Catalan序列是一个整数序列,其通项公式是我们从中取出的就
叫做第n个Catalan数,前几个Catalan数是:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796,
5878...
分类:
其他好文 时间:
2014-05-25 19:48:23
阅读次数:
280
题目链接:uva 10312 - Expression Bracketing
题目大意:给出一个序列,长度为n,表示有n个x(节点),可以添加任意括号,问说形成的串为非二叉表达式的有多少个。
解题思路:直接求非二叉表达式是比较困难,所以换求总数减去二叉表达式的数量。二叉表达式的很容易发现是Catalan数,而总数时一种叫SuperCatalan数的一种序列,第一次接触。或者可以用dp做...
分类:
其他好文 时间:
2014-05-24 19:23:26
阅读次数:
309
题目链接:10312 - Expression Bracketing
题意:有n个x,要求分括号,判断非二叉表达式的个数。
思路:二叉表达式的计算方法就等于是Catalan数的,那么只要计算出总数,用总数减去二叉表达式个数,得到的就是非二叉表达式的个数。那么计算方法是什么呢。
看题目中的图,对于n = 4的情况,可以分为这几种情况来讨论:
四个1, 一个2两个1,一个3一个1,一个4,对应...
分类:
其他好文 时间:
2014-05-15 07:11:23
阅读次数:
218
这道题其实跟二叉搜索树没有什么关系,给定n个节点,让你求有多少棵二叉树也是完全一样的做法。思想是什么呢,给定一个节点数x,求f(x),f(x)跟什么有关系呢,当然是跟他的左右子树都有关系,所以可以利用其左右子树的结论,大问题被成功转化成了小问题。最熟悉的方法是递归和dp,这里显然有大量的重复计算,用dp打表好一些。
后来实验的同学说,这其实是一个Catalan数,上网查了一下,果然啊。Catal...
分类:
其他好文 时间:
2014-05-09 14:47:53
阅读次数:
229