题解:UVA11310 Delivery Debacle

· · 题解

题意:

你能做两种规格的蛋糕,一种是占一格的小蛋糕,一种是占三格的大蛋糕,问你能用多少种不同的方法把蛋糕装进特定大小的盒子里,盒子宽为二,长为 n。

思路:

本题多组数据,通过枚举前几项我们可以得到递推公式,a_i=a_{i-3} \times 2+4 \times a_{i-2}+a_{i-1}, 设好前两项的值,递推就可以了。

优化:

我们可以提前算出 40 项,问哪一项直接输出即可。

核心代码:

a[1]=1;
a[2]=5;
for(int i=3;i<=40;i++){
    a[i]=a[i-3]*2+4*a[i-2]+a[i-1];
}