zoukankan      html  css  js  c++  java
  • Bellman-Ford算法(有向图)

    #include <iostream>
    #include <cstring>
    #include <cstdio>
    
    #define MAX 100
    #define INF 0x3f3f3f
    using namespace std;
    //有向图
    struct Edge
    {
        int u,v,cost;
    }e[MAX];
    int dist[MAX];  //最短路径
    int prev[MAX];  //路径
    int m,n;    //边数和顶点数
    
    bool Bellman_Ford(int v0)
    {
        int u=v0;
        for(int i=1;i<=n;i++)
            dist[i]=INF;
        dist[u]=0;
        for(int i=1;i<=n;i++)
            for(int j=0;j<m;j++)
                if(dist[e[j].v]>dist[e[j].u]+e[j].cost)
                {
                    dist[e[j].v]=dist[e[j].u]+e[j].cost;
                    prev[e[j].v]=e[j].u;
                }
        for(int i=0;i<m;i++)
            if(dist[e[i].v]>dist[e[i].u]+e[i].cost)
                return 0;
        return 1;
    }
    
    int main()
    {
        cin>>n>>m;
        for(int i=0;i<m;i++)
            cin>>e[i].u>>e[i].v>>e[i].cost;
        if(Bellman_Ford(1))
            for(int i = 1; i <= n; ++i) //每个点最短路
            {
                printf("%d
    ", dist[i]);
            }
        else
            printf("have negative circle
    ");
        return 0;
    }
  • 相关阅读:
    [UE4]Image
    [UE4]CheckBox
    [UE4]Button
    [UE4]Border
    [UE4]RichTextBlock
    [UE4]Text Box
    [UE4]字体材质
    [UE4]Retainer Box
    [UE4]Invalidation Box
    [UE4]Dynamic Entry Box
  • 原文地址:https://www.cnblogs.com/asuml/p/6641473.html
Copyright © 2011-2022 走看看