zoukankan      html  css  js  c++  java
  • 【学习】最短路

    堆优DJ

    适用无负边权,跑稠密图,O((V+E)logV)。O((V+E)lgV

    struct node{
        int nxt,to,w;
    }e[M];
    int d[M],head[M];
    bool vis[M];
    typedef pair<int,int> P;
    priority_queue<P,vector<P>,greater<P> >q;
    while(!q.empty()){
        int u=q.top().second;q.pop();
        if(vis[u])continue;
        vis[u]=1;
        for(int i=head[u];i;i=e[i].nxt){
            int v=e[i].v;
            if(dis[v]>dis[u]+e[i].w){
                dis[v]=dis[u]+e[i].w;
                q.push(P(dis[v],v));
            }
        }
    }

    SPFA

    可以跑负边权和判断负环,适合稀疏图,大概O(VE),容易被卡。

    Floyd

    O(N*N*N)

    inline void floyd(){
        for(int k=1;k<=n;k++)
            for(int i=1;i<=n;i++)
                for(int j=1;j<=n;j++)
                    if(dist[i][k]+dist[k][j]<dist[i][j])
                        dist[i][j]=dist[i][k]+dist[k][j];
    }

    O(

  • 相关阅读:
    Document
    Document
    Document
    Document
    Document
    Document
    Document
    Document
    export和import 输出/接收模块变量的接口
    webpack:(模块打包机)
  • 原文地址:https://www.cnblogs.com/jian-song/p/11650407.html
Copyright © 2011-2022 走看看