ACM暑期集训——专题二[最短路Bellman-Ford算法]

来源:互联网 发布:淘宝1688代销可靠么 编辑:程序博客网 时间:2024/06/14 07:41
#include <iostream>#include <stdio.h>using namespace std;int map[1002][1002]={0};struct side{int x,y,v;};int main(){int i,j,N,M,n,x,y,v,k=1,l;scanf("%d",&n);while(n--){scanf("%d %d",&N,&M);int d[1002]={0},max=1000000;side s[101000];for(i=0;i<1002;i++){for(j=0;j<1002;j++){map[i][j]=map[j][i]=0;}}for(i=1;i<=M;i++){scanf("%d %d %d",&x,&y,&v);if(!map[x][y]){map[x][y]=map[y][x]=v;s[i].x=x;s[i].y=y;s[i].v=v;}if(v<map[x][y]){map[x][y]=map[y][x]=v;s[i].x=x;s[i].y=y;s[i].v=v;}}d[1]=max;for(i=2;i<=N;i++){d[i]=0;}for(i=1;i<=N-1;i++){for(j=1;j<=M;j++){if(d[s[j].y]<min(d[s[j].x],s[j].v))  d[s[j].y]=min(d[s[j].x],s[j].v);              if(d[s[j].x]<min(d[s[j].y],s[j].v))  d[s[j].x]=min(d[s[j].y],s[j].v);          }      }printf("Scenario #%d:\n",k);k++;printf("%d\n\n",d[N]);}return 0;}

0 0
原创粉丝点击