一、Catalan数的定义 令h(0)=1,h(1)=1,Catalan数满足递归式:h(n) = h(0)*h(n-1) + h(1)*h(n-2) + ... + h(n-1)*h(0) (n>=2) 该递推关系的解为:h(n) = C(2n,n)/(n+1),n=0,1,2,3,... (其中 ...
分类:
其他好文 时间:
2016-05-03 22:06:56
阅读次数:
252
组合数学: 1、加法原理:类类独立;乘法原理:步步相关。 2、排列组合:http://www.cnblogs.com/PegasusWang/archive/2013/01/22/2872312.html 3、递推关系:http://www.cnblogs.com/skyme/p/3541863.h ...
分类:
编程语言 时间:
2016-04-02 20:16:46
阅读次数:
157
题目链接 题意:序列长度为n(1<= n <= 200,000)的序列,有Q(<=200,000)次区间查询,问区间[l,r]中有多少个不同的连续递增的三元组。 思路:连续三元组->递推O(n)将第一次出现该三元组的下标记录到树状数组中,并且用一个Next[]来表示递推关系,即同一个三元组下一次出现 ...
分类:
编程语言 时间:
2016-04-01 01:08:39
阅读次数:
235
因为w太大了 若dp[i][j] : 表示选取第i件物品,重量不超过j的物品的价值的最大, 第二层循环耗费太大 重新考虑递推关系, dp[i][j] 表示 选取 i 件物品, 价值为 j 时的最小重量 1 int dp[105][10005]; 2 3 int v[105]; 4 int w[105 ...
分类:
其他好文 时间:
2016-03-26 22:14:55
阅读次数:
286
递推,顾名思义,就是从一个小问题一步步推出问题的结果。在这个过程中,最主要的就是发现其中的递推关系。 给定一个数的序列H0,H1,…,Hn,…若存在整数n0,使当n>n0时,可以用等号(或大于号、小于号)将Hn与其前面的某些项Hi(0<i<n)联系起来,这样的式子就叫做递推关系。 来看一个问题:“未
分类:
编程语言 时间:
2016-03-12 22:38:24
阅读次数:
170
定义ai表示红色和绿色方块中方块数为偶数的颜色有i个,i = 0,1,2。aij表示刷到第j个方块时的方案数,这是一个线性递推关系。可以构造递推矩阵A,用矩阵快速幂求解。 1 /********************************************************* 2 *...
分类:
其他好文 时间:
2015-11-07 17:25:59
阅读次数:
197
本题就是两个要点:1.数据结构的设计。显然可以使用双向链表来做,但是写双向链表的代码复杂度高。其实更好的方法是使用两个对弹的栈来做,而且没必要用STL的栈,就自己开两个数组简单搞一下就好了。2.最大前缀和的更新。很简单的递推关系,dp[i]=max(dp[i-1],sum[i]),意思是从开头到a[...
分类:
其他好文 时间:
2015-10-28 20:54:11
阅读次数:
241
令h(0)=1,h(1)=1,卡塔兰数数满足递归式:h(n)= h(0)*h(n-1) + h(1)*h(n-2) + ... + h(n-1)h(0) (其中n>=2),这是n阶递推关系;还可以化简为1阶递推关系: 如h(n)=(4n-2)/(n+1)*h(n-1)(n>1) h(0)=1该递推关...
分类:
其他好文 时间:
2015-10-10 10:20:46
阅读次数:
263
题目:1、给定一数组,求该数组的最大子数组和;2、给定一矩阵,求该矩阵的最大子矩阵和;思路:1、求数组的最大子数组和很简单,可以通过动态规划来实现,假设数组为arr:假设dp[i]表示从0到i的数组的最大子数组和,那么递推关系式表示为:dp[0]=arr[0];dp[i]=dp[i-1]>0?dp[...
分类:
编程语言 时间:
2015-09-17 23:18:29
阅读次数:
260
题目:定义Fibonacci序列如下:f(0)=0,f(1)=f(2)=1,n>2时,f(n)=f(n-1)+f(n-2),输入n,用最快的方法求该数列的第n项。分析:首先递归求法肯定都会,但是由于递推关系的形式,很容易看出里面有很多的重复计算。改进的方法也很容易想到,即申请额外的两个空间来存放保存前..
分类:
其他好文 时间:
2015-09-14 00:37:22
阅读次数:
167