zoukankan      html  css  js  c++  java
  • Spfa 模板

    #include <cstdio>
    #include <cmath>
    #include <cstring>
    #include <queue>
    #include <algorithm>
    #define INF 0x3F3F3F3F
    using namespace std;
    
    const int MAXN = (int)(1e4 + 10);
    const int MAXM = (int)(1e5 + 10);
    
    int n, ml, md, dist[MAXN];
    int size, head[MAXN], point[MAXM], val[MAXM], nxt[MAXM];
    
    void add (int from, int to, int value)
    {
        val[size] = value;
        point[size] = to;
        nxt[size] = head[from];
        head[from] = size++;
    }
    
    bool  spfa(int s)
    {
        int cnt[MAXN];
        bool vis[MAXN];
        queue<int> q;
        memset(vis, false, sizeof vis);
        memset(dist, 0x3f, sizeof dist);
        memset(time, 0, sizeof time);
        
        q.push(s);
        vis[s] = true;
        dist[s] = 0;
        while(!q.empty()){
            int u = q.front();
            q.pop();
            vis[u] = false;
            for(int i = head[u]; ~i; i = nxt[i]){
                if(dist[point[i]] > dist[u] + val[i]){
                    dist[point[i]] = dist[u] + val[i];
                    if(!vis[point[i]]){
                        vis[point[i]] = true;
                        q.push(point[i]);
                        if(++cnt[point[i]] > n) return false;
                    }
                }
            }
        }
        return true;
    }
  • 相关阅读:
    wenbao与manacher
    wenbao与拓扑排序
    wenbao与邻接表
    wenbao与最短路floyd
    wenbao与最短路dij
    wenbao与后缀自动机(SAM)
    wenbao与欧拉回路
    wenbao与字符串Hash
    wenbao与后缀数组
    wenbao与扩展kmp
  • 原文地址:https://www.cnblogs.com/quasar/p/5140589.html
Copyright © 2011-2022 走看看