算点 i i i在第 k k k个时刻到达恰好到达点 j j j的方案数就是 A i , j k A^k_{i,j} Ai,jk, A A A为邻接矩阵
所以我们需要算 A 1 A^1 A1到 A k A^k Ak
一个办法是每个点再连出一个虚点,虚点连一个自环,引出路径让它在虚点里绕圈,但是这样 n n n要多开一倍,复杂度无法接受
另一个办法是:
∑
i
=
1
k
A
i
=
∑
i
=
1
⌊
k
2
⌋
A
i
+
A
⌊
k
2
⌋
∑
i
=
1
⌊
k
2
⌋
A
i
+
[
k
&
1
]
A
k
\sum_{i=1}^{k}A^i=\sum_{i=1}^{\lfloor\frac{k}{2}\rfloor}A^i+A^{\lfloor\frac{k}{2}\rfloor}\sum_{i=1}^{\lfloor\frac{k}{2}\rfloor}A^i+[k\&1]A^k
i=1∑kAi=i=1∑⌊2k⌋Ai+A⌊2k⌋i=1∑⌊2k⌋Ai+[k&1]Ak
分治即可