P3990 Solution
一次只能跳一步的情况下:
\(dp_{i,j}=dp_{i-1,j-1}+dp_{i-1,j}+dp_{i-1,j+1}\)
接下来考虑能跳奇数步:你发现跳 \(3\) 步相当于先跳一个奇数 \(1\) 再跳一个 \(2\),跳 \(5\) 步相当于先跳一个奇数 \(3\) 再跳一个 \(2\)
也就是说能够一步跳到 \((i,j)\) 的一定能够一步跳到 \((i-2,j)\)
\(dp\) 方程也就呼之欲出了:
\(dp_{i,j}=dp_{i-1,j-1}+dp_{i-1,j}+dp_{i-1,j+1}+dp_{i-2,j}\)
可以构造矩阵 \((n=3)\)
$\begin{bmatrix}
1\ \ 1\ \ 0\ \ 1\ \ 0\ \ 0\
1\ \ 1\ \ 1\ \ 0\ \ 1\ \ 0\
0\ \ 1\ \ 1\ \ 0\ \ 0\ \ 1\
1\ \ 0\ \ 0\ \ 0\ \ 0\ \ 0\
0\ \ 1\ \ 0\ \ 0\ \ 0\ \ 0\
0\ \ 0\ \ 1\ \ 0\ \ 0\ \ 0\
\end{bmatrix}
\times
\begin{bmatrix}
dp_{i,1}\
dp_{i,2}\
dp_{i,3}\
dp_{i-1,1}\
dp_{i-1,2}\
dp_{i-1,3}\
\end
\begin{bmatrix}
dp_{i+1,1}\
dp_{i+1,2}\
dp_{i+1,3}\
dp_{i,1}\
dp_{i,2}\
dp_{i,3}\
\end{bmatrix}$
矩阵快速幂即可。
标签:begin,end,solution,p3990,bmatrix,dp From: https://www.cnblogs.com/iorit/p/18046105