求图中走t步的路径数(矩阵加速)
当图中任意两个点的距离为1时,求点\(X\)走\(T\)步到达点\(Y\)的路径数。
可以构建矩阵A,\(A^T\)即为走\(T\)步的情况。
当图中两点的距离不为1时,
SCOI2009] 迷路 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
两点的距离较小时,可以分裂每个点。多出来一些点,使得每个点的距离为1。
当有特殊限制:不能立即走刚刚走过的路。
若无限制,则是裸的矩阵加速,加上限制则无法走上一步走过的路。
点边互换,维护边,构造边的\(mp\)数组。y
无向图,裂开每条边成两条有向边,对每条边进行编号,若一条边x可以经过点到达另一条边y,则mp[x][y]=1
,
若两条边是同一条边分裂出来的,不进行连边。(分裂时标记一下)
矩阵\(A^{T-1}\)则为走过T步的情况。
ans=
起始点出去的边和进入终点的边的情况数和