题目链接:hdu 4828 Grids题目大意:略。解题思路:将上一行看成是入栈,下一行看成是出栈,那么执着的方案就是卡特兰数,用递推的方式求解。#include #include typedef long long ll;const int N = 1000005;const ll MOD = 1...
分类:
其他好文 时间:
2014-10-09 01:40:27
阅读次数:
378
一块药看成括号配对就行了。很明显的直接求卡特兰数。今晚看了HDU 3240的题,有一点思路,但无情的TLE。想不到什么好方法了,看了别人的解答,哇。。。简直是天才的做法啊。。。。留到星期六自己思考一遍再重新写。import java.math.BigDecimal;import java.math....
分类:
其他好文 时间:
2014-10-09 00:47:27
阅读次数:
353
把向上看成+1,向下看成-1.可以知道符合卡特兰数的一般解释了。记作Can(i)中间平过的即是0。亦即是C(n,2*i),i表示向上的数。于是总的就是sum(C(n,2*i)*Can(i)),i从0至n/2。注意,通项是可以通过递推求得的。import java.math.BigDecimal;im...
分类:
其他好文 时间:
2014-10-07 21:56:44
阅读次数:
241
N个节点的不同的树的数目。这样随便取一个节点作为根,那么他左边和右边的儿子节点个数就确定了,假定根节点标号为x,那么左子树的标号就从1到x-1,共x-1个,右子树的标号就从x+1到n,共n-x个,那么我们的x从1取到n,就获得了所有的情况数。这是一个递推的式子,初始值与卡特兰数的初值相同。所以,解正...
分类:
其他好文 时间:
2014-10-07 18:00:03
阅读次数:
160
卡特兰数。把进栈看成是+1,出栈看成是-1,任何时候部分和都有a1+a2+....ak>=0。求这样的数列的个数。这明显是卡特兰数的一个解释嘛。在《组合数学》这本书就有这样的原本的证明。import java.io.InputStreamReader;import java.math.BigDeci...
分类:
其他好文 时间:
2014-10-07 12:19:13
阅读次数:
178
卡特兰数的例题了。import java.math.BigDecimal;import java.math.BigInteger;import java.util.Scanner;import java.io.InputStreamReader;public class Main{ public s...
分类:
其他好文 时间:
2014-10-07 12:05:43
阅读次数:
149
设50元的人为+1 100元的人为-1 满足前任意k个人的和大于等于0 卡特兰数
C(n+m, m)-C(n+m, m+1)*n!*m!
import java.math.*;
import java.util.*;
public class Main {
/**
* @param args
*/
public static void main(Str...
分类:
其他好文 时间:
2014-10-07 00:43:11
阅读次数:
232
很容易想到的卡特兰数,不过复杂度高精度还是挺恶心的。于是用JAVA秒杀了。import java.math.BigInteger;import java.util.Scanner;public class Main { static BigInteger[] f=new BigInteger...
分类:
编程语言 时间:
2014-10-04 03:22:45
阅读次数:
281
卡特兰数的一般项公式为:至于怎么推导,《计算机程序设计艺术(卷一)》2.2.1节习题4的解答提到的精彩解法“反射原理”,下面是对其的概括:三国真人娱乐城问题大意是用S表示入栈,X表示出栈,那么合法的序列有多少个(S的个数为n)。显然有c(2n, n)个含S,X各n个的序列,剩下的是计算不允许的序列数...
分类:
其他好文 时间:
2014-10-03 22:31:45
阅读次数:
900
题意:将1~2n个数按照顺时针排列好,用一条线将两个数字连接起来要求:线之间不能有交点,同一个点只允许被连一次。
最后问给出一个n,有多少种方式满足条件。
分析:
ans[n]表示n的中的种类数。 规定ans[0] = ans[1] = 1;
假设给出的数是n那么从1开始, 与1之间相连的数与1之间间隔的对数分别是0, 1, 。。n-1, 那么我们就可以将他们分割成两部分,对于每一部分我们...
分类:
其他好文 时间:
2014-10-03 18:44:55
阅读次数:
207