求图中走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=起始点出去的边和进入终点的边的情况数和

SDOI2009]HH去散步 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

posted on 2022-05-11 15:50  naiji  阅读(68)  评论(0编辑  收藏  举报