卡特兰数
栈是一种常见的数据结构,有许多关于栈的问题,其中之一就是统计元素可能的出栈序列。具体说,就是给定n个元素,依次通过一个栈,求可能的出栈序列的个数。
如果我们用直接模拟的方法,当n较大时会很费时间;
例如动态规划。令f[i,j]表示栈内有i个元素且栈外有j个元素还未进栈,那么以进栈还是出栈为决策就马上得到了转移方程f[i,j]=f[i-1,j]+f[i+1,j-1]。如此一来,很...
分类:
其他好文 时间:
2014-06-11 06:29:56
阅读次数:
296
题意:n*m的矩阵任选三个点,可以有多少种不同的三角形。
解法:组合数学C((n+1)*(m+1),3)是所有三个点的情况。然后在减掉共线的。共线的分为两种:
1、共横线或竖线:C(n+1,3)*(m+1)+C(m+1,3)*(n+1);
2,斜线的:这个要枚举矩形,然后三个点有两个取矩形的对角线,另一点枚举(对角线上的整数点个数是gcd(i,j)...
分类:
其他好文 时间:
2014-06-11 00:27:59
阅读次数:
311
大致题意:
给定left,right,求出[left,right]中有多少数满足如下的性质:化成二进制形式后,0的个数大于等于1
组合数学,各种小边界处理很蛋疼
大致思路是
以10101100为例子,先求[0,10000000)中满足条件的数(想想该怎么求),然后求[100 00000,101 00000),[101 00 000,101 01 000)
[101 01 000,101 ...
分类:
其他好文 时间:
2014-06-10 07:38:58
阅读次数:
167
POJ 2282 The Counting Problem,组合数学
ACM
题目地址:POJ 2282
题意:
给出俩数n,m,求从n~m中0~9分别出现的次数。
分析:
组合数学。
只要能快速算出0~n中各个数的出现次数就能解决问题了。
要把数拆开来看,比如3456=3000+400+50+6。
然后就只要考虑后面都是0的数就行了。
0~...
分类:
其他好文 时间:
2014-06-07 15:38:04
阅读次数:
195
题目:给你R个红球和B个黑球,从这些球中取出相同颜色的概率是50%;
然后丢了一些黑球,剩下的黑球不少于原来的70%;
现在给你红球和剩下的黑球个数,求可能丢了几个黑球。
分析:数学题。
首先,根据组合数学列出等式2*[C(n,2)+C(m,2)] = C(m+n,2):...
分类:
其他好文 时间:
2014-06-05 05:18:35
阅读次数:
187
POJ 1401 && ZOJ 2202 Factorial 阶乘N!的末尾零的个数
题目地址:
POJ 1401
ZOJ 2202
题意:
求N!后面有几个0。
分析:
组合数学类型的题目。
正常的话可能会去分解1~N数里面有几个5和2,但是这样的复杂度为O(nlogn)。
其实有更巧妙的办法,可以把问题分解成子问题。
可以发现N!末尾的0与1~N中...
分类:
其他好文 时间:
2014-06-05 04:43:02
阅读次数:
248
POJ 1715 Hexadecimal Numbers 组合数学
题目地址
题意:
一个十六进制,最多8位而且每一位都不能重复,求所有符合的数中第n大的数。注意不能有前导0。
分析:
可以发现,第i位的任何一个取值,都有P(unused, i - 1)个数字串,只要从高位向低位,从F到1找过去,看第n个是否在这个区间里面,如果没有的话就把那位置为0,然后找下一位就行了。...
分类:
其他好文 时间:
2014-06-04 21:14:02
阅读次数:
272
题意:每位新娘打扮得几乎一模一样,并盖上大大的红盖头随机坐成一排;然后,让各位新郎寻找自己的新娘.每人只准找一个,并且不允许多人找一个.最后,揭开盖头,如果找错了对象就要当众跪搓衣板...假设一共有N对新婚夫妇,其中有M个新郎找错了新娘,求发生这种情况一共有多少种可能.
解法:从N中选出M个C[n][m],然后乘上错排公式;f[n]=(n-1)*(f[n-1]+f[n-2]);f[0]=...
分类:
其他好文 时间:
2014-06-02 18:51:43
阅读次数:
389
题意:求集合{1,2,3...n}的第m个排列子集合。集合的大小按字典树排。
例两个元素的排列子集合按字典树排列是:{1},{1,2},{2},{2,1};
解法:一个一个元素来确定,每次把剩余的元素按大小顺序排列在num中,然后根据排列组合原理直接计算下一个位置的元素的大小,直到排列数为0停止;
代码:/*************************...
分类:
其他好文 时间:
2014-06-02 15:09:09
阅读次数:
280
本题是一题组合数学的题目。应用到比较高级一点的数学知识。
可以认为是一题indistinguishable objects to distinguishable boxes 把相同的物体放进不同盒子的问题。
这样应用公式是:C(n, n+k-1) = C(k-1, n+k-1),n代表物体k代表盒子
但是因为需要每个盒子最少必须放置一个物体,故此减去每个盒子的这一个球,就得到公式:C(k-1, n+k-1-k)
这样就可以简化为计算一个公式的问题了。
注意: 这里是相同物体放进不同盒子,所以比较简单,注意区...
分类:
其他好文 时间:
2014-06-01 06:22:45
阅读次数:
309