题目:
分析:
只有两行显然提示用dp,注意L的形态只有一个。
A【i】表示到i为止的个数。
复杂的考虑情况:
如果状态转移,则要考虑上铺下不铺等的情况。
自己不敢往下想,题解中有类似的思路:
大佬直接这样给的:
我还是来个三维的吧!
int A[n+1][2][2];
//0表示不铺,1表示铺。 A[i] 表示i之前的列都铺了。
memset(A,0,sizeof(A));
A[1][1][1]=1;
A[2][1][1]=2;
A[2][1][0]=1;
A[2][0][1]=1;
for(int i=3;i<=n;i++)
{
A[i][0][0]=A[i-1][1][1]%((int)pow(10,9)+7;
A[i][1][0]=A[i-1][0][0]+A[i-1][0][1]%((int)pow(10,9)+7;
A[i][0][1]=A[i-1][0][0]+A[i-1][1][0]%((int)pow(10,9)+7;
A[i][1][1]=A[i-1][1][1]+A[i-1][1][0]+A[i-1][0][1]+A[i-1][0][0]%((int)pow(10,9)+7;
}
return A[n][1][1];