美文网首页
图论之最短路算法

图论之最短路算法

作者: YuhangQ | 来源:发表于2017-04-11 20:05 被阅读0次

    Floyd

    #include <cstdio>
    待补坑
    

    Dijkstra

    朴素o(n^2)

    int n, m;// 点数量以及边数量
    int w[MAXN][MAXN];// 记录任意两点之间距离
    int d[MAXN];// 点的权值
    int v[MAXN];// 标记数组
    void Dijkstra() {
        // 初始化所有点权为INF
        for(int i=2; i<=n; i++) d[i] = INF;
    
        for(int i=1; i<=n; i++) {
            int x, m = INF;
            // 选出相连的d值最小的点
            for(int y=1; y<=n; y++) if(!v[y] && d[y]<=m) m = d[x=y];
            // 标记此点为已访问
            v[x] = true;
            // 更新最小d值
            for(int y=1; y<=n; y++) {d[y] = min(d[y], d[x] + w[x][y]);}
    
        }
    }
    

    相关文章

      网友评论

          本文标题:图论之最短路算法

          本文链接:https://www.haomeiwen.com/subject/aewuattx.html