图中长度为k的路径的计数
给定一个
n个顶点,边长为
1的有向图的邻接矩阵。求出这个图里长度为
k的路径的总数。路径中同一条边允许通过多次。
(1≤n≤100,1≤109)
输入
n = 4
k = 2
输出
6
题解
假设从
u出发,到
v的路径的总数为
Gk[u][v]。首先,
k=1时的值和边数相等,因此
G1就等于图的临界矩阵。假设我们已经得到了
Gk1[u][w]×Gk2[w][v]
表示成矩阵的积的形式即为
Gk1+k2=Gk1Gk2
因此,可以使用矩阵的幂表示出
Gk=G1k
这个算法的复杂度为
O(n3logn)