标签:
一, 图上的应用
可以用归纳法证明, 一张图的邻接矩阵(只含0, 1)在自乘 k 次以后得到的就是从i 走 k 步之后恰好走到 j 的方案数。
于是一些数据范围明显用 O(n) 及以上的复杂度过不了的题时常会用到加一些变形后的矩阵乘法。
bzoj 1297 : [SCOI2009]迷路
算一张有权图 走 k 步后恰好到j 的方案数。
原图中每走一步的代价不一定是1了, 怎么办?
如果从 i 走到 j 要花 k 的时间, 不妨想象成如果你要从 i 到 j 的话, 就一定要先在 i 这里待上 k - 1 的时间, 然后才能花费1 的代价走到 j .
所以把每个点都拆成多个点, i0, i1, i2 …… 分别表示在 i 这个点待了多少时间, 再从 i(k - 1) 到 j(0) 连一条边就可以了。
bzoj 1898: [Zjoi2004]Swamp 沼泽鳄鱼
这道题是在特定的时间有特定的点不能走, 但是这个时间是以最多12个单位时间一次循环的。
既然有循环自然就可以暴力算出一次循环过后的结果然后再用矩阵乘加速了。
标签:
原文地址:http://www.cnblogs.com/lixintong911/p/4297823.html