bellman-ford模板

Posted Go

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bellman-ford模板相关的知识,希望对你有一定的参考价值。

题目大意:

最短路;

基本思路:

松弛;

代码如下:

struct Edge{
    int to,w;
    bool operator<(const Edge& rhs)const{
        return w>rhs.w;
    }
}edge[maxn];
vector<int>gra[maxn];
int dis[maxn],cnt[maxn];
bool vis[maxn];
bool bellman_ford(int s){
    queue<int>q;q.push(s);
    memset(vis,false,sizeof(vis));vis[s]=true;
    memset(cnt,0,sizeof(cnt));
    for(int i=0;i<n;i++) dis[i]=inf; dis[s]=0;
    while(!q.empty()){
        int u=q.front();q.pop();
        vis[u]=false;
        int sz=gra[u].size();
        for(int i=0;i<sz;i++){
            Edge& e=edge[gra[u][i]];
            if(dis[e.to]>dis[u]+e.w){
                dis[e.to]=dis[u]+e.w;
                if(!vis[e.to]){
                    q.push(e.to);
                    vis[e.to]=true;
                    cnt[e.to]++;
                    if(cnt[e.to]>n){
                        return false;
                    }
                }
            }
        }
    }
    return true;
}

  

以上是关于bellman-ford模板的主要内容,如果未能解决你的问题,请参考以下文章

Bellman-ford 模板

(模板)hdoj2544(最短路--bellman-ford算法)

Bellman-ford算法SPFA算法求解最短路模板

[M最短路] lc787. K 站中转内最便宜的航班(Bellman-Ford算法模板+边数限制最短路+dp思想)

[M最短路] lc787. K 站中转内最便宜的航班(Bellman-Ford算法模板+边数限制最短路+dp思想)

[洛谷 P3381] 最小费用最大流 | 模板 Bellman-Ford寻找增广路 入门