p3990-solution

P3990 Solution

link

一次只能跳一步的情况下:

\(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}$

矩阵快速幂即可。

posted @ 2024-03-01 09:03  iorit  阅读(5)  评论(0)    收藏  举报