杭电OJ递推系列的题目
1.2047 阿牛的EOF牛肉串
分析:
对于这种递推求解的题目无非分为两种递推方式:
(1)从前往后递推
(2)从后往前递推
这道题用从后往前递推比较好,因为题目中的限制条件为禁止出现O相邻的情况,所以通过定后一项的值来判断前一项的取值比较容易。
参考资料
PS:这种题目难点就在找到题目的递推公式,还不是很会做,以后再练习一下吧!
递推公式:\(f(n) = 2 * f(n-1) + 2 * f(n-1)\)
2.2045 LELE的RPG难题
不容易系列之(3)—— LELE的RPG难题
同样是从后往前递推比较容易哦。
3.2049 不容易系列之(4)——考新郎
这题也是一道典型的错排公式的运用。我们先从N个新郎中选出M个新郎,然后对这M对进行错排。
错排的递推公式是:\(f(n) = (n - 1) * (f(n-2) + f(n-1))\)
采用从后往前递推,第n个人有n-1种选择。。。
4.2050 折线分割平面
折线分割平面
要求的是n条折线分割平面的最大数目,又是要总结出递推公式,或者直接是公式。
首先是直线拆分平面的原理,见参考博客2050
根据上面直线拆分平面如何最大化的分析,把目光放在了它们的交点上面,从题目的图中可以看到,添加第N条折线会多出\(4(N-1)\)个交点。而每增加\(4(N - 1)\)个交点,和直线分割平面一样,就增加\(4(N - 1)+1\)个平面,那么我们可以得到递推式:
\(f[n] = f[n-1] + 4(n-1) + 1\)
化简提炼通项公式:\(f[n] = 2n^2 - n + 1\)
由此可以根据递推公式,或通项公式解决问题。
5.2044 一只小蜜蜂...
啊~同样还是考察推断能力,蜜蜂在第一格,它可以往2、3两格里爬;蜜蜂在第3格,可以往4、5两格爬。
如果默认是从第一个开始走,要到达第n格,是第n-1格的总走法加上第n-2格的总走法,递推公式:
\(f[n] = f[n - 1] + f[n - 2]\),Fibonacci
此题所求为\(f(b-a)\),b为终点,a为起点。