杭电1874(畅通工程续)
2012-07-25 16:46
197 查看
最短路径求解
View Code
View Code
//杭电1874(最短路径) #include<stdio.h> #define Max 10000 int n,m,start,end; int a[210],b[210],map[210][210]; void bfs() { int i,j,k,min; for(i=0;i<n;i++) a[i]=map[start][i]; a[start]=0; b[start]=1; for(i=0;i<n;i++) { min=Max; min=Max; for(j=0;j<n;j++) { if(!b[j]&&min>a[j]) { min=a[j]; k=j; } } b[k]=1; if(min==Max) break; for(j=0;j<n;j++) { if(!b[j]&&min+map[k][j]<a[j]) a[j]=map[k][j]+min; } } if(a[end]==Max) printf("-1\n"); else printf("%d\n",a[end]); } int main() { int i,j,x,y,z; while(scanf("%d%d",&n,&m)!=-1) { for(i=0;i<n;i++) { a[i]=Max; b[i]=0; for(j=0;j<n;j++) map[i][j]=Max; } for(i=0;i<m;i++) { scanf("%d%d%d",&x,&y,&z); if(map[x][y]>z) map[x][y]=map[y][x]=z; } scanf("%d%d",&start,&end); bfs(); } return 0; }
相关文章推荐
- 杭电1874畅通工程续 -最短路径
- 杭电 1874 畅通工程续
- 杭电oj1874 畅通工程续(最小距离)
- 【杭电1874】畅通工程续--dijkstra算法和Floyd算法
- 杭电--1874--畅通工程续--并查集
- 杭电oj(Java版)——1874 畅通工程续 最短路径问题 Duskjstra算法
- 杭电acm-1874畅通工程续
- 杭电 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畅通工程续