hdu 2544 最短路(最短路第一弹)
来源:互联网 发布:达芬奇调色 mac 编辑:程序博客网 时间:2024/05/23 12:03
hdu 2544 最短路 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544
图论 Dijstra(迪杰斯特拉)
题目分析:求最短路,迪杰斯特拉算法是贪心、BFS思想,走每个点时找能走的点中最短的路径(直接或间接),并更新结果数组。
code:
#include<stdio.h>#include<string.h>#define INF 100000099int map[110][110],dis[110],m,n;void dijstra(int sourse,int n){int vis[110],k,l,sta=sourse;for(k=0;k<n;k++){dis[k]=map[sta][k];vis[k]=0;//printf("dis[%d]==%d\n",k,dis[k]);}vis[sta]=1;for(k=1;k<n;k++){int mark=sta,temp=INF;for(l=1;l<n;l++){if(!vis[l]&&sta!=l){if(map[sta][l]<INF&&dis[l]>dis[sta]+map[sta][l]){//这里开始写成map[sta][l]!=0,忘了初始化成INF了dis[l]=dis[sta]+map[sta][l];}if(dis[l]<temp){temp=dis[l];mark=l;}}}if(temp==0||temp==INF)break;sta=mark;vis[mark]=1;}}int main(){int a,b,c,i,j;while(scanf("%d%d",&m,&n)!=EOF&&m|n){memset(map,INF,sizeof(map));memset(dis,INF,sizeof(dis));for(i=0;i<n;i++){scanf("%d%d%d",&a,&b,&c);if(c<map[a-1][b-1])map[a-1][b-1]=map[b-1][a-1]=c;//因为是无向图 }dijstra(0,m);printf("%d\n",dis[m-1]);}return 0;}PS:最短路第一弹,迪杰斯特拉算法……弄了狠长时间啊~
PSS:一个学习笔记http://hi.baidu.com/iohwwoilrrbcdld/item/9fee76319c62684a3175a147
- hdu 2544 最短路(最短路第一弹)
- HDU 2544 最短路 (单源最短路)
- 最短路 (HDU 2544)
- hdu 2544(最短路)
- (HDU-2544)最短路
- HDU-2544 最短路【最短路】
- HDU 2544 最短路 最短路入门
- hdu 2544 最短路 (最短路)
- HDU 2544 最短路(最短路入门)
- HDU ACM 2544 最短路->最短路
- hdu 2544 最短路(最短路spfa)
- HDU 2544 最短路 (最短路 Dijkstra)
- HDU 2544 最短路-最短路总结
- HDU 2544 最短路 [最短路]
- HDU-2544-最短路【最短路】
- 最短路 2544hdu
- HDU 2544 最短路
- HDU-2544 最短路
- uva839
- python 搭建的服务器上面 运行项目出错的记录
- MySQL 远程登录与其常用命令的介绍
- hdu 1853 Cyclic Tour(费用流OR二分图最佳匹配,5级)
- android 注册、登录实现程序
- hdu 2544 最短路(最短路第一弹)
- WebService
- 测试工程师如何提升自己
- 浅谈ASP脚本的解释
- 排序(sorting)
- ==运算符
- 软件架构设计之四:面向对象方法
- linux安装中文
- NYOJ 49-开心的小明:01背包