hdu 2544 最短路
来源:互联网 发布:淘宝化妆品上新技巧 编辑:程序博客网 时间:2024/06/10 20:22
#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <stack>#include <set>#include <map>#include <string>#include <math.h>#include <stdlib.h>#include <time.h>using namespace std;const int inf=1<<30;const int N=200+5;int n,m,vis[N],edge[N][N],path[N],dist[N];void Dijkstra(int v0){ int i,j,k,u,minx; for(i=0; i<n; i++) { dist[i]=edge[v0][i]; vis[i]=0; if(dist[i]<inf&&i!=v0) path[i]=v0; else path[i]=-1; } vis[v0]=1; dist[v0]=0; for(i=0; i<n-1; i++) { minx=inf,u=v0; for(j=0; j<n; j++) { if(!vis[j]&&dist[j]<minx) { minx=dist[j]; u=j; } } //if(minx==inf) break; vis[u]=1; for(k=0; k<n; k++) { if(!vis[k]&&edge[u][k]<inf&&dist[u]+edge[u][k]<dist[k]) { dist[k]=dist[u]+edge[u][k]; path[k]=u; } } }}int main(){ int i,j,k,u,v,w,s,t; while(~scanf("%d%d",&n,&m)) { if(n==0&&m==0) break; memset(edge,0,sizeof(edge)); for(i=0; i<m; i++) { scanf("%d%d%d",&u,&v,&w); u--;v--; if(edge[u][v]==0||edge[u][v]>w) edge[u][v]=edge[v][u]=w; //edge[u][v]=w; } //scanf("%d%d",&s,&t); for(i=0; i<n; i++) for(j=0; j<n; j++) { if(i==j) edge[i][j]=0; else if(edge[i][j]==0) edge[i][j]=inf; } Dijkstra(0); //if(s==t) printf("0\n"); //else if(path[t]!=-1) printf("%d\n",dist[n-1]); //else printf("-1\n"); } return 0;}
0 0
- 最短路 2544hdu
- HDU 2544 最短路
- HDU-2544 最短路
- Hdu-2544 最短路
- HDU 2544 最短路
- hdu 2544 最短路
- HDU 2544 ( 最短路 )
- hdu 2544 最短路
- HDU 2544 最短路
- hdu 2544 最短路
- hdu 2544 最短路
- HDU 2544 最短路
- hdu 2544 最短路
- HDU 2544 最短路
- hdu 2544 最短路
- HDU 2544 最短路
- hdu 2544 最短路
- hdu 2544 最短路
- android真机与pc服务端的调试
- 正则表达式实例
- Linux下压缩的命令及对应文件扩展名
- Codevs3753磁阵突围题解
- 分支判断选择的另外一种方式(类似switch case和if elseif),使用正则表达式定义的宏函数
- hdu 2544 最短路
- Java知识整理——远程方法调用
- 红场阅兵2015直播视频
- Android:native和上层framework基于socket进行通讯
- 黑马程序员------------泛型,Map集合
- 当前主流电脑的BIOS调出键
- 【Android开发】图形图像处理技术-使用BitmapShader渲染图像
- Storm及Hadoop比较 && Strom优点
- redis报-ERR max number of clients reached错误