题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6185
这题比赛时猜到是矩阵快速幂了,但推公式推了好久没有推出来,比赛结束后看到有一个题解,对于填满n列的情况,只关心第n+1列露出的形状,这些形状可以分为6类,而新的一列一定是从第n+1列的这6种形状转移到第n+2列的这6种形状。这样就可以对这6种形状写出转移矩阵了。
题解链接:https://blog.csdn.net/a664607530/article/details/77619554
情况a为第n行刚好填满且没有突出到第(n + 1)行,即为所求答案,由图不难推出:
a[n] = a[n - 1] + b[n - 1] + c[n - 1] + dx[n - 1] + dy[n - 1]
b[n] = a[n - 1]
c[n] = a[n - 1] + e[n - 1]
dx[n] = a[n - 1] + dy[n - 1]
dy[n] = a[n - 1] + dx[n - 1]
e[n] = c[n - 1]
令d[n] = dx[n] + dy[n]
则 a[n] = a[n - 1] + b[n - 1] + c[n - 1] + d[n - 1]
b[n] = a[n - 1]
c[n] = a[n - 1] + e[n - 1]
d[n] = a[n - 1] * 2 + d[n - 1]
e[n] = c[n - 1]根据这个构造出矩阵即可
1 |
|