zoukankan      html  css  js  c++  java
  • 白书上的BellmanFord模板


    #include <iostream>
    #include <cstdio>
    #include <cmath>
    #include <cstring>
    #include <algorithm>
    #include <queue>
    #include <stack>
    #include <vector>
    #include <map>
    #include <set>
    
    using namespace std;
    
    const int maxn=11111;
    
    struct Edge{
        int from,to;
        int dist;
    };
    
    struct BellmanFord{
        int n,m;
        vector<Edge> edges;
        vector<int> G[maxn];
        bool inq[maxn];
        int d[maxn];
        int p[maxn];
        int cnt[maxn];
    
        void init(int n){
            this->n=n;
            for (int i=0;i<n;i++) G[i].clear();
            edges.clear();
        }
    
        void addedges(int from,int to,int dist)
        {
            edges.push_back((Edge){from,to,dist});
            m=edges.size();
            G[from].push_back(m-1);
        }
    
        bool negativeCycle()
        {
            queue<int> que;
            memset(inq,0,sizeof(inq));
            memset(cnt,0,sizeof(cnt));
            for (int i=0;i<n;i++){ d[i]=0; inq[i]=true; que.push(i); }
            while (!que.empty()){
                int u=que.front();que.pop();
                inq[u]=false;
                for (int i=0;i<G[u].size();i++){
                    Edge& e=edges[G[u][i]];
                    if (d[e.to]>d[u]+e.dist){
                        d[e.to]=d[u]+e.dist;
                        p[e.to]=G[u][i];//p[e.to]=e.from;
                        if (!inq[e.to]){
                            que.push(e.to);
                            inq[e.to]=true;
                            if (++cnt[e.to]>n) return true;
                        }
                    }
                }
            }
            return false;
        }
    }solver;
    





  • 相关阅读:
    angularjs $index用来取顺序
    angularjs &登录跳转
    if(!confirm("您确定删除吗?")){return;}
    登录跳转
    undefined null测试
    git生成密钥
    遍历map
    网络相关名词解释
    redis的Pub/Sub
    SQLAlchemy的使用
  • 原文地址:https://www.cnblogs.com/cyendra/p/3226313.html
Copyright © 2011-2022 走看看