zoukankan      html  css  js  c++  java
  • spfa【最短路】【模板】

    1.jsk精辟解析

    spfa

    spfa-负环

    2.记录最优路径

    int prv[N], pree[N];
    int dis[N];
    bool in[N];
    inline void Init()
    {
        memset(dis, 0x3f, sizeof(dis));
        memset(in, false, sizeof(in));
    
    }
    void SpfaFirst()
    {
        Init();
        memset(prv, -1, sizeof(prv));
        queue<int> q;
        q.push(1);
        dis[1] = 0;
        in[1] = true;
    
        int u;
        while(!q.empty())
        {
            u = q.front();
            q.pop();
            in[u] = false;
            for(int i = p[u]; ~i; i = e[i].next)
            {
                int v = e[i].v, w = e[i].w;
                if(dis[u]+w < dis[v])
                {
                    //cout << dis[v] << " dw: "<<dw<<endl;
                    dis[v] = dis[u]+w;
                    prv[v] = u;
                    pree[v] = i;
                    if(!in[v])
                    {
                        q.push(v);
                        in[v] = true;
                    }
                }
            }
        }
    }
    

    3.普通spfa

    int dis[N];
    bool in[N];
    inline void Init()
    {
        memset(dis, 0x3f, sizeof(dis));
        memset(in, false, sizeof(in));
    
    }
    void Spfa()
    {
        Init();
        queue<int> q;
        q.push(1);
        dis[1] = 0;
        in[1] = true;
    
        int u;
        while(!q.empty())
        {
            u = q.front();
            q.pop();
            in[u] = false;
            for(int i = p[u]; ~i; i = e[i].next)
            {
                int v = e[i].v, w = e[i].w;
                if(dis[u]+w < dis[v])
                {
                    //cout << dis[v] << " dw: "<<dw<<endl;
                    dis[v] = dis[u]+w;
                    if(!in[v])
                    {
                        q.push(v);
                        in[v] = true;
                    }
                }
            }
        }
    }
    
  • 相关阅读:
    会跳舞的树(只用HTML+CSS)(转)
    国内UED收录
    HDU 1078 dfs+dp
    HDU 1278
    HDU 4499
    HDU 4597
    POJ2777
    POJ1780 Code
    简单的Fleury算法模板
    POJ 2513 无向欧拉通路+字典树+并查集
  • 原文地址:https://www.cnblogs.com/bear-xin/p/14949708.html
Copyright © 2011-2022 走看看