咋看起来想图论,其实不是,大概是最短路写太多了吧,一看到地图就来劲。
给出地图,求出是否结点 A 是否可能在第 Q 步时到达 结点 B,矩阵表示图的邻接关系,mat[i][j] 表示有无从 i 到 j 的边,1 有 0 无。
(mat ^ q) [i][j] 表示 i 结点有无可能刚好在第 q 步到达结点 j,1 有 0 无。
以上讨论所谓 A 结点出发,在第 q 步到达结点 B,是允许在达到 B 结点前经过结点 B 的。题目不允许这种情况,只需要去掉结点 B 的所有出边就行了,既在矩阵中把 B 所在行全部设 0 就行了。
需要对矩阵求 Q 次方,Q 很大,不能 1 次方,2 次方,3 次方……一次一次求,把 O(Q) 次乘法降到 O(lgQ) 次,总时间复杂度是 O(n^3 X lgQ)。有 O(n^2) 的矩阵乘法?还没有学习到。n 最大 25,还可以接受。

1941

被折叠的 条评论
为什么被折叠?



