特征方程求解数列通项.
先考虑 $m=2$ 的做法,设 $f(i)$ 表示用 $1\times 2$ 的骨牌填满 $2\times i$ 的网格的方案数.
显然有 $f(0)=f(1)=1,f(i)=f(i-1)+f(i-2)$ .
利用特征方程可以求出 $f(i)=c_1x^i+c_2y^i$ .
推一下式子,
$$
\begin{aligned}
(r-l+1)\cdot ans_2&=\sum_{i=l}^r F(i,k) \\
&=\sum_{i=l}^r \binom{f(i)}{k} \\
&=\sum_{i=l}^r \frac{1}{k!}\cdot f(i)^{\underline k}
\end{aligned}
$$
把 $x^{\underline k}$ 暴力展开成 $\sum a_i\cdot x^i$ ,代回上式,
$$
\begin{aligned}
(r-l+1)\cdot ans_2&=\sum_{n=l}^r \frac{1}{k!} \sum_{j=0}^k a_j\cdot f(i)^j \\
&=\sum_{j=0}^k \frac{a_j}{k!} \sum_{i=l}^r (c_1x^i+c_2y_i)^j \\
&=\sum_{j=0}^k \frac{a_j}{k!}\sum_{p=0}^j \cdot \binom{j}{p} \cdot c_1^pc_2^{j-p} \sum_{i=l}^r (x^p y^{j-p})^i
\end{aligned}
$$
枚举 $j,p$ 的值,最后面的那一项用等比数列求和公式计算,时间复杂度 $O(k^2\cdot \log r)$ .
当 $m=3$ 时,设 $g(n)$ 表示填满 $2\times (2n)$ 的方案数,有 $g(0)=1,g(1)=3,g(i)=4g(i-1)-g(i-2)$ .
算出此时的 $c_1,x,c_2,y$ ,其余做法和 $m=2$ 的相同.
由于解出来的 $c$ 分别含有 $\sqrt 5,\sqrt 3$ ,而 $5,3$ 在模 $998244353$ 下都不是二次剩余,所以要自己定义一个数域.
1 | //%std |