杭电 1874 畅通工程续
2011-07-16 20:45
239 查看
#include<stdio.h> #include<string.h> #include<stdlib.h> int inf=0x7fffffff; int map[210][210],hash[210],dis[210]; int n,m,s,t; void dijstra() { dis[s]=0; for(int i=0;i<n;i++) { int t=inf,pos; for(int j=0;j<n;j++) { if(hash[j]==0) { if(t>dis[j]) { t=dis[j]; pos=j; } } } hash[pos]=1; if(pos==n) break; for(int j=0;j<n;j++) { if(hash[j]==0) { if(map[pos][j]!=inf&&dis[pos]+map[pos][j]<dis[j]) dis[j]=map[pos][j]+dis[pos]; } } } } int main() { int x,y,v; while(scanf("%d%d",&n,&m)!=EOF) { for(int i=0;i<n;i++) { dis[i]=inf; hash[i]=0; for(int j=0;j<n;j++) { map[i][j]=inf; } } for(int i=1;i<=m;i++) { scanf("%d%d%d",&x,&y,&v); if(x!=y&&map[x][y]>v) { map[x][y]=map[y][x]=v; } } scanf("%d%d",&s,&t); dijstra(); if(dis[t]!=inf)//要判断s到t是否有路。 { printf("%d\n",dis[t]); } else { printf("-1\n"); } } //system("pause"); return 0; }
编辑器加载中...
相关文章推荐
- 杭电1874(畅通工程续)
- 杭电acm-1874畅通工程续
- 杭电1874畅通工程续
- 杭电1874-畅通工程续(最短路径,dijkstra,spfa,floyd)
- 杭电1874 畅通工程续(最短路dijkstra)
- 【杭电1874】畅通工程续
- 杭电 1874 畅通工程续(Dijkstra)
- 杭电OJ-1874_畅通工程续
- 【杭电OJ】1874--畅通工程续-最短路(dijkstra)
- 畅通工程续HDU杭电1874【dijkstra算法 || SPFA】
- 杭电acm1874 畅通工程续
- 【杭电oj】1874 - 畅通工程续(dijkstra,注意注意!)
- 杭电 hdu 1874 畅通工程续
- 杭电1874畅通工程续
- 杭电1874-畅通工程续
- 杭电1874_畅通工程续(Dijkstra算法)——java
- 杭电-1874 畅通工程续 (Floyd&&dijkstra)
- 杭电1874-畅通工程续(SPFA算法)
- 杭电1874畅通工程续 -最短路径
- 杭电 1874 畅通工程续