noip复习之数学——递推关系

Posted iwillenter-top1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了noip复习之数学——递推关系相关的知识,希望对你有一定的参考价值。

1.问题一:兔子的繁殖(斐波拉契数列)

? f[n]=f[n-1]+f[n-2]

\[ Fibonacci:f(n)=\frac1\sqrt5\left(\frac1+\sqrt52\right)^n-\frac1\sqrt5\left(\frac1-\sqrt52\right)^n \]

问题二:凸三角形剖分/括号化问题/不同出栈次序数问题/二叉树个数问题(卡特兰数)

f[n]=f[2]f[n-1]+f[3]f[n-2]+...+f[n-1]f[2]=f[n-1](4*n-2)/(n+1)

\[ Catlan:f(n)=\frac\left(2*n\right)!n!*\left(n+1\right)! \]

问题三:火柴。用n(1<=n<=2000)根火柴棍能组成多少个非负整数

分析:令c[x]表示数字x需要的火柴数(0<=x<=9),用f[i]来更新f[i+c[x]](相当于在这个数的后面加上x这个数),当i等于0的时候不允许使用数字0,而是当n>=6时,给答案单独加上1,代表整数0。

d[i+c[x]]+=d[i];

问题四:立方数之和。

输入正整数n(n<=1e4),求将n写成若干个正整数的立方和有多少种方案。比如21有3种写法,77有22种写法,9999有440,022,018,293种写法

分析:建立多段图。设结点(i,j)表示“使用不超过i的大小的整数的立方,累加和为j”的这个状态,设d(i,j)为从(0,0)到(i,j)的路径条数,则最终的答案就是d(21,n)(因为21^3>n)
\[ d[i][j+a*i*i*i]+=d[i-1][j] \]
但是还可以再优化:
\[ d[i][j]+=d[i][j-i*i*i](类似完全背包) \]

问题五:村民排队。

村子里现在有n个人(1<=n<=40,000)个人,有多少种方式可以把他们排成一列,使得没有人站在他父亲的前面(有些人的父亲可能不在村子里面),输出总方案数模上1e9+7

问题六:带标号连通图计数。

统计有n(n<=50)个顶点的连通图有多少个。图的顶点有编号。

分析:在不考虑连通的情况的时候,这n个带标号的点共能构成
\[ h(n)=2^\fracn(n-1)2 \]
张图(若考虑任意两点之间都有边,则共有(n-1)+(n-2)+...+1=n(n-1)/2条边,而每条边都有连或者不连的选择,所以是2^(n(n-1)/2)种,我们设连通的图为f(n),未连通的图共有g(n)张,则f(n)+g(n)=h(n)。

g(n)可以这样计算:设1所在连通分量有k个点,就有C(n-1,k-1)种情况。确定点集后,1所在连通分量有f(n)种情况,而其他连通分量有h(n-k)种情况,则:
\[ g(n)=\sum_k=1^n-1C(n-1,k-1)*f(k)*h(n-k) \]
每次计算出g(n)后,应立刻计算出f(n)和h(n)。

以上是关于noip复习之数学——递推关系的主要内容,如果未能解决你的问题,请参考以下文章

noip专题复习之数学——概率与数学期望

noip复习之数学——组合游戏

noip专题复习之数学——置换及其应用

noip2017考前基础复习——数论数学

关于noip提高组复习

NOIP丢人计