Warshall算法求道路矩阵

原创 2015年07月07日 22:04:07

输入有向图的邻接矩阵,Warshall算法求道路矩阵。

第i次循环将第i行叠加到第j行的非零元对应的行。

时间复杂度从O(n^4)降到O(n^3)。

#include <iostream>
using namespace std;
const int maxn = 10;
bool P[maxn][maxn];

int main () {
    int n;
    cin >> n;
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            cin >> P[i][j];                     //邻接矩阵

    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            for (int k = 0; k < n; k++)
                P[j][k] += P[j][i] * P[i][k];

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cout << P[i][j] << " ";
        }
        cout << endl;
    }
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

How many ways??(离散数学知识(集合论二元关系Warshall算法原理)+矩阵快速幂)

Link:http://acm.hdu.edu.cn/showproblem.php?pid=2157 How many ways?? Time Limit: 2000/1000 ...

Floyd-Warshall算法过程中矩阵计算方法—十字交叉法

前几天在看Floyd算法的时候,虽然感觉程序很简单,但是让你动手写那些过程矩阵的时候就感觉不怎么简单了,就上网找找看有木有简便的计算方法,搜索之后没有发现有现成的例子,只搜到了两句“弄两条线,从左上角...

图论--Floyd_Warshall算法---邻接矩阵实现

Floyd_Warshall算法---邻接矩阵实现                          求每个点到其它点的最短路径。 C语言实现:                       ...
  • yjy188
  • yjy188
  • 2012年10月21日 11:42
  • 322

Warshall算法求传递闭包

算法描述: 传递闭包的一种有效算法—Warshall算法,这种算法也便于计算机实现。 (1)置新矩阵A=M; (2)i=1; (3)对所有j如果A[j,i]=1,则对k=1,2,…,n,A[j...

POJ - 3660 Cow Contest (Warshall算法求传递闭包)

N (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participating in a programming contest. As we ...
  • Wabrush
  • Wabrush
  • 2017年08月03日 08:41
  • 122

Floyd-Warshall算法:求结点对的最短路径问题

Floyd-Warshall算法:是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权的最短路径问题,同时也被用于计算有向图的传递闭包。 原理: Floyd-Warshall算法的原理是...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Warshall算法求道路矩阵
举报原因:
原因补充:

(最多只允许输入30个字)