题意
用 $1 \times 2$ 的多米诺骨牌填满 $M \times N$ 的矩形有多少种方案,$M \leq 5,N < 2^{31}$,输出答案模 $p$.
分析
当 $M=3$时,假设前 $n-2$列已经填满,$n-1$ 列不全,现要向左推进一列。
每列只有8种情况,如果一种情况能转移到另一种则连一条边。
答案就是从“111”出发恰好走 $n$ 步又回到“111” 的路径数,这个问题等价于求转移矩阵的 $n$ 次方.
确定转移矩阵,使用矩阵快速幂,$mat[7][7]$ 就是答案。
实现
$M=3$ 时,
#include<cstdio> #include<cstring> using namespace std; typedef long long ll; stru