hdu2544 最短路
来源:互联网 发布:java 就业周末班 编辑:程序博客网 时间:2024/05/30 22:55
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2544
最短路径DIJKSTRA
1 #include<stdio.h> 2 #include<math.h> 3 #include<string.h> 4 #include<stdlib.h> 5 #include<limits.h> 6 #include<iostream> 7 using namespace std; 8 const int N=110; 9 int a[N][N];//用于标记两个路口的默认距离(权值)10 int use[N];//标记是否使用11 int d[N];//两点间最短距离12 int n,m;13 void dijkstra(int u)14 {15 memset(use,0,sizeof(use));16 for(int i=1;i<=n;i++)17 d[i]=a[u][i];//初始化赋值18 use[u]=1;//1路口起点标记使用19 d[u]=0;//1 1 距离为020 for(int i=2;i<=n;i++)21 {22 int min=INT_MAX;//理论最大值23 int v=-1;//设v为一个不可能的点24 for(int w=1;w<=n;w++)//在所有未标记use中,选择d最小的点25 {26 if(!use[w] && d[w]<min)27 {28 min=d[w];29 v=w;30 }31 }32 if(v!=-1)//没有路径则不更新33 {34 use[v]=1;//标记使用35 for(int w=1;w<=n;w++)36 {37 if(!use[w] && (a[v][w]<INT_MAX))//确定未使用以及拥有路径38 {39 if(d[w] > min+a[v][w])//比较,取得最小距离40 d[w]=min+a[v][w];41 }42 }43 }44 }45 // for(int i=1;i<=n;i++)46 // printf("%d ",d[i]);47 // cout<<endl;48 printf("%d\n",d[n]);49 }50 int main()51 {52 //freopen("in.txt","r",stdin);53 while(~scanf("%d%d",&n,&m)&&n&&m)54 {55 int x,y,c;56 for(int i=1;i<=n;i++)57 {58 for(int j=1;j<=n;j++)59 a[i][j]=INT_MAX;60 }61 for(int i=0;i<m;i++)62 {63 scanf("%d%d%d",&x,&y,&c);64 a[x][y]=a[y][x]=c;65 }66 dijkstra(1);67 }68 return 0;69 }
阅读全文
0 0
- Hdu2544-最短路-【最短路】
- hdu2544最短路
- hdu2544最短路
- hdu2544(最短路)
- hdu2544最短路
- hdu2544 Dijkstra最短路
- hdu2544-最短路
- hdu2544 最短路
- HDU2544:最短路
- hdu2544最短路
- hdu2544最短路
- hdu2544最短路
- HDU2544:最短路(Dijkstra)
- hdu2544 最短路
- hdu2544 最短路
- hdu2544 最短路
- HDU2544 最短路 【Dijkstra】
- HDU2544,最短路
- Springboot 整合 Mybatis 的完整 Web 案例
- hdu1068 Girls and Boys
- 奇奇怪怪技术贴之KindleForPC
- RPC , netty ,webSocket基于长链接的描述
- VS2013 error 集
- hdu2544 最短路
- Java基础:探秘Java中的String、StringBuilder以及StringBuffer
- hdu1874 畅通工程续
- (转)ACM基础练习题总结
- Linux查看web是否能访问
- 2017ACM-ICPC区域赛(西安)赛后感
- hdu1715
- Js获取请求地址的参数
- hdu2021(很闲~~)