本文共 1265 字,大约阅读时间需要 4 分钟。
题解:经典矩阵算法。把给定的图转为邻接矩阵,即A(i,j)=1当且仅当存在一条边i->j。令C=A*A,那么C(i,j)=ΣA(i,k)*A(k,j),实际上就等于从点i到点j恰好经过2条边的路径数(枚举k为中转点)。类似地,C*A的第i行第j列就表示从i到j经过3条边的路径数。同理,假设要求经过k步的路径数,我们仅仅须要二分求出A^k就可以。
参考文章:
/**@Author: STZG*@Language: C++*/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
转载地址:http://vqzof.baihongyu.com/