ACM组合数学
文章平均质量分 59
coding进阶
清华,互联网大厂和量化投资
展开
-
直线,折线,曲线分割平面以及平面分割空间问题
注明出处,摘自 http://www.cnblogs.com/chaosheng/archive/2012/01/26/2329583.html(1) n条直线最多分平面问题 题目大致如:n条直线,最多可以把平面分为多少个区域。 析:可能你以前就见过这题目,这充其量是一道初中的思考题。但一个类型的题目还是从简单的入手,才容易发现规律。当有n-1条直线时,平面最多被分成转载 2013-03-23 22:33:55 · 3049 阅读 · 0 评论 -
错排计数
考虑一个有n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的排列就称为原排列的一个错排。 n个元素的错排数记为Dn递推公式如下:D1=0,D2=1Dn=(n-1)(Dn-1+Dn-2)具体证明见:http://zh.wikipedia.org/wiki/%E9%94%99%E6%8E%92%E9%97%AE%E9%A2%98可以原创 2013-03-23 22:09:01 · 891 阅读 · 0 评论 -
HDUOJ 2046(递推)
在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数.例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图:Input输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是2×n (0 Output对于每个测试实例,请输出铺放方案的总数,每个实例的输出占一行。原创 2013-03-23 22:24:04 · 754 阅读 · 0 评论 -
HDUOJ 2047(递推)
递推公式如下:A1=3A2=8An=2*(A(n-1)+A(n-2)), n>=3证明:对于n>=3的情况,考虑最后1个字符,有如下2种可能:1. 最后一个字符是'O',此时倒数第二个字符只可能是'E'或'F',前n-2个字符的选择就是A(n-2),所以这种情况下,选择数就是2*A(n-2)2. 最后一个字符不是'O',此时最后一个字符可能是'E'或'F',前n原创 2013-03-23 22:28:53 · 643 阅读 · 0 评论 -
染色问题(n个格子,3种颜色)
有排成一行的n个方格,用红(Red)、粉(Pink)、绿(Green)三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色.求全部的满足要求的涂法.递推公式:A1 = 3A2 = 6 //A(3,2)=6A3 = 6 //A(3,3)=6An=2*A(n-2)+A(n-1), n>=4证明:考虑第n-1个格子:1. 如果这个格子原创 2013-03-23 22:16:31 · 6534 阅读 · 0 评论 -
HDUOJ 2067题
这题的结果是卡塔兰数的2倍,因为有2种可能,只从对角线下方走和只从对角线上方走。2*catlan(n)即为结果,其中catlan(n)=不过如果直接利用此公式编写代码的话,需要注意组合数在计算过程中的溢出。此题不建议直接用公式来计算,因为我们可以容易地找到递推公式。假设坐标原点位于左上角,dp[i][j]表示只从对角线上方走时,从坐标(0,0)到(i,j)的路径数,所以原创 2013-03-24 20:43:05 · 850 阅读 · 0 评论 -
HDUOJ 2086推导
已知A1=(A0+A2)/2 - C1, A2=(A1+A3)/2 - C2 , ...=>A1+A2 = (A0+A2+A1+A3)/2 - (C1+C2)=>A1+A2 = A0+A3 - 2(C1+C2) 类似的有:A1+A2 = A0+A3 - 2(C1+C2)A1+A3 = A0+A4 - 2(C1+C2+C3)A1+A4 = A0+A5 - 2(C1+C2+C3原创 2013-03-25 10:31:11 · 795 阅读 · 0 评论 -
卡塔兰数(Catlan)
refernce: http://zh.wikipedia.org/wiki/%E5%8D%A1%E5%A1%94%E5%85%B0%E6%95%B0卡塔兰数是组合数学中一个常在各种计数问题中出现的数列。以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名。卡塔兰数的一般项公式为 前几项为 (OEIS中的数列A000108): 1, 1, 2, 5原创 2013-03-24 20:34:34 · 1454 阅读 · 0 评论 -
在实现组合数计算的时候要防止溢出
1. 在计算组合数C(N, M)的时候如果利用公式n!/(m!*(n-m)!)的话,很可能会溢出。 因为对于阶乘,13!已经超过了int能表示的范围,而且也会很快超过long long的表示范围。2. 如果按照定义先计算分子,再计算分母,再相除的话也会溢出。3. 最保险的计算方式如下:分子:N*(N-1)*...*(N-M+2)(N-M+1)分母:M*(M原创 2013-03-24 16:21:44 · 3997 阅读 · 0 评论