题意:学校教室的长度为n米,宽度为3米,现在我们有2种地砖,规格分别是1米×1米,2米×2米,如果要为该教室铺设地砖,请问有几种铺设方式呢?
链接:HDU 2190传送门
想法:要铺设3*n的地砖,当在3*(n-1)的基础上放时,只有一种情况,就是放三个1*1的。当在3*(n-2)的基础上放时,有两种情况,一种是两个1*1的地砖在上面,2*2的在下面,还有一种是2*2的在上面1*1的在下面。所以递推公式为:school[i]=2*school[i-2]+school[i-1];
代码:
long long school[35];
void init()
{
school[1]=1;
school[2]=3;
for(int i=3;i<31;i++)
school[i]=2*school[i-2]+school[i-1];
}
心得:第一次接触的时候着实不知道怎么处理,多接触一下这种类型的就不会去胡思乱想就可以做了。