poj 2387 Til the Cows Come Home//最短路径

来源:互联网 发布:淘宝客服售前操作流程 编辑:程序博客网 时间:2024/05/22 00:23

求1到N的最短路径。用的spfa算法,注意重边问题。

#include<iostream>#include<stdio.h>#include<string.h>using namespace std;const int maxn = 1007;const int maxcost = 99999999;int n,t;int g[maxn][maxn],dist[maxn],vis[maxn];int queue[maxn*8],front,rear;void spfa(int sink,int source){int i,j,k;for(i=1;i<=n;i++){dist[i]=maxcost;vis[i]=0;}dist[sink]=0;vis[sink]=1;front=0,rear=0;queue[rear++]=sink;while(rear!=front){int temp= queue[front++];for(i=1;i<=n;i++)if(dist[i]>dist[temp]+g[temp][i]){dist[i]=dist[temp]+g[temp][i];if(!vis[i]){vis[i]=1;queue[rear++]=i;}}vis[temp]=0;}printf("%d\n",dist[source]);}int main(){int i,j;cin>>t>>n;for(i=1;i<=n;i++)for(j=1;j<=n;j++)g[i][j]=maxcost;for(i=0;i<t;i++){int a,b,c;scanf("%d %d %d",&a,&b,&c);g[a][b]=g[a][b]>c?c:g[a][b];g[b][a]=g[b][a]>c?c:g[b][a];}spfa(1,n);return 0;}


原创粉丝点击