Til the Cows Come Home

 在大神的博客上看了一些思路,然后再再看书整理一下思路,总结了一下算法,也慢慢能写出一些东西,但是还是wa可是还是很多数据结构没有处理好所以我就直接贴了

#include <iostream>  
using namespace std;  
#define inf 1<<29  
#define MAXM 2005  
#define MAXV 1005  
  
typedef struct{  
    int a,b,w;  
}Edge;  
  
Edge edge[MAXM];  
int n,m;  
  
void bellman_ford(){  
    int i,j;  
    int d[MAXV];  
    for(i=2;i<=n;i++) d[i]=inf;  
    d[1]=0;  
  
    for(i=1;i<=n;i++){  
        for(j=1;j<=m;j++){  
            if(d[edge[j].a]>edge[j].w+d[edge[j].b]) d[edge[j].a]=edge[j].w+d[edge[j].b];  
            if(d[edge[j].b]>edge[j].w+d[edge[j].a]) d[edge[j].b]=edge[j].w+d[edge[j].a];  
        }  
    }  
    printf("%d
",d[n]);  
}  
  
int main(){  
    int i,a,b,c;  
    while(~scanf("%d%d",&m,&n)){  
        for(i=1;i<=m;i++){  
            scanf("%d%d%d",&a,&b,&c);  
            edge[i].a=a;  
            edge[i].b=b;  
            edge[i].w=c;  
        }  
        bellman_ford();  
    }  
    return 0;  
} 

  

原文地址:https://www.cnblogs.com/yintoki/p/5716195.html