Bellman——Ford算法

双向图,无优化代码

#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <math.h>
#include <ctype.h>
#include <map>
#include <set>
#include <vector>
#include <queue>
#define inf 0x3f3f3f3f
#define eps 1e-8
#define pi 3.1415
typedef long long ll;
using namespace std;
int u[10005],v[10005],w[10005];
int dis[105];
int main()
{
    int n,m;
    while(~scanf("%d%d",&n,&m),n+m)
    {
        memset(u,0,sizeof(u));
         memset(v,0,sizeof(v));
          memset(w,0,sizeof(w));
        for(int i=1; i<=n; i++) dis[i]=inf;
//memset(dis,inf,sizeof(dis));
        dis[1]=0;
        for(int i=1; i<=m; i++)
        {
            scanf("%d %d %d",&u[i],&v[i],&w[i]);
        }
        for(int k=1; k<=n; k++)
        {
            for(int i=1; i<=m; i++)
            {

                dis[u[i]]=min(dis[u[i]],dis[v[i]]+w[i]);//双向
                  dis[v[i]]=min(dis[v[i]],dis[u[i]]+w[i]);
            }
        }
    printf("%d\n",dis[n]);
    }
    return 0;}






    原文作者:Bellman - ford算法
    原文地址: https://blog.csdn.net/yiqzq/article/details/79172711
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞