hdoj 2544 最短路【dijkstra or spfa】
最短路
Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 38585 Accepted Submission(s): 16862
- #include<stdio.h>
- #include<string.h>
- #define INF 0x3f3f3f
- int map[110][110];
- int visit[110];//记录最短距离节点
- int lowtime[110];//记录最短 时间
- int cross;
- int dijkstra()
- {
- int j,i,mintime,next;
- memset(visit,0,sizeof(visit));//初始化visit数组为0;
- for(i=1;i<=cross;i++)
- {
- lowtime[i]=map[1][i]; //初始化lowtime数组为从1到i的时间
- }
- visit[1]=1;
- for(i=1;i<cross;i++)
- {
- mintime=INF;
- for(j=1;j<=cross;j++)
- {
- if(!visit[j]&&mintime>lowtime[j])
- {
- mintime=lowtime[j];
- next=j;
- }
- }
- visit[next]=1;
- for(j=1;j<=cross;j++)
- {
- if(!visit[j]&&lowtime[j]>map[next][j]+lowtime[next])
- lowtime[j]=map[next][j]+lowtime[next];
- }
- }
- printf("%d\n",lowtime[cross]);
- }
- int main()
- {
- int road,x,y,c,i,j;
- while(scanf("%d%d",&cross,&road)&&cross!=0&&road!=0)
- {
- for(i=1;i<cross;i++)
- {
- for(j=1;j<=cross;j++)
- {
- if(i==j)
- map[i][j]=0;
- else
- map[i][j]=map[j][i]=INF;
- }
- }
- while(road--)
- {
- scanf("%d%d%d",&x,&y,&c);
- if(map[x][y]>c)
- {
- map[x][y]=map[y][x]=c;
- }
- }
- dijkstra();
- }
- return 0;
- }
spfa算法:
- #include<stdio.h>
- #include<string.h>
- #include<queue>
- #define MAX 110
- #define INF 0x3f3f3f
- using namespace std;
- int n,m;
- int map[MAX][MAX],low[MAX];
- bool vis[MAX];
- void init()
- {
- int i,j;
- for(i=1;i<=n;i++)
- for(j=1;j<=n;j++)
- map[i][j]=i==j?0:INF;
- }
- void spfa()
- {
- int i,j;
- queue<int>q;
- while(!q.empty())
- q.pop();
- memset(vis,0,sizeof(vis));
- memset(low,0x3f,sizeof(low));
- low[1]=0;
- q.push(1);
- vis[1]=true;
- int u;
- while(!q.empty())
- {
- u=q.front();
- q.pop();
- vis[u]=false;
- for(i=1;i<=n;i++)
- {
- if(low[i]>low[u]+map[u][i]&&map[u][i]<INF)
- {
- low[i]=low[u]+map[u][i];
- if(!vis[i])
- {
- vis[i]=true;
- q.push(i);
- }
- }
- }
- }
- printf("%d\n",low[n]);
- }
- int main()
- {
- int i,j;
- while(scanf("%d%d",&n,&m),n|m)
- {
- init();
- for(i=1;i<=m;i++)
- {
- int a,b,c;
- scanf("%d%d%d",&a,&b,&c);
- if(map[a][b]>c)
- map[a][b]=map[b][a]=c;
- }
- spfa();
- }
- return 0;
- }
hdoj 2544 最短路【dijkstra or spfa】的更多相关文章
- HUD.2544 最短路 (Dijkstra)
HUD.2544 最短路 (Dijkstra) 题意分析 1表示起点,n表示起点(或者颠倒过来也可以) 建立无向图 从n或者1跑dij即可. 代码总览 #include <bits/stdc++ ...
- ACM: HDU 2544 最短路-Dijkstra算法
HDU 2544最短路 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Descrip ...
- hdu 2544 最短路 Dijkstra
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544 题目分析:比较简单的最短路算法应用.题目告知起点与终点的位置,以及各路口之间路径到达所需的时间, ...
- hdoj 2544 最短路
题目传送:http://acm.hdu.edu.cn/showproblem.php?pid=2544 分析:Dijkstra算法 //2013-10-30 10:01:25 Accepted 254 ...
- HDOJ 2544 最短路(最短路径 dijkstra算法,SPFA邻接表实现,floyd算法)
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- HDOJ/HDU 2544 最短路---dijkstra算法
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544 这题的思路可以见这里(同一类型):http://blog.csdn.net/xiaozhuaix ...
- hdoj 2544最短路
Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要 ...
- hdoj 2544 最短路(最短路+Dijkstrea算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544 思路分析:该问题给定一个无向图,要求求从起始点到终点的最短路径长度:可以使用dijkstra算法 ...
- HDU 2544 最短路(初涉SPFA算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544 Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t ...
随机推荐
- [Gauss]HDOJ3364 Lanterns
题意:有n个灯笼,m个开关 每个开关可以控制k个灯笼, 然后分别列出控制的灯笼的编号(灯笼编号为1到n) 下面有Q个询问,每个询问会有一个最终状态(n个灯笼为一个状态)0代表关 1代表开 问到达这种状 ...
- LESS CSS 总结
1.LESS 简介 less是动态的样式表语言,通过简洁明了的语法定义,使编写 CSS 的工作变得非常简单 类似Jquery框架 中文网站: http://www.lesscss.net/ 2.编译工 ...
- HeadFirst设计模式之模板方法模式
一. 1.The Template Method defines the steps of an algorithm and allows subclasses to provide the impl ...
- C#基础精华04(文件流,文件操作,File、Directory、Path,Directory)
文件流 FileStream 可读可写 大文件 释放 StreamReader 读取 释放 StreamWriter 写入 释放 using 中释放 File 可读可写 小文件 操作文 ...
- linux系统相关的任务[fg、bg、jobs、&、ctrl + z]
转自: http://blog.chinaunix.net/space.php?uid=20697318&do=blog&id=1891382 fg.bg.jobs.&.ctr ...
- python-append()方法
append() 方法向列表的尾部添加一个新的元素.只接受一个参数. >>> mylist = [1,2,3,4] >>> mylist [1, 2, 3, 4] ...
- Yii CActiveForm
http://blog.sina.com.cn/s/blog_685213e70101mo4i.html 文档: http://www.yiiframework.com/doc/api/1.1/CAc ...
- Linux Shell常用命令手册(Updating)
检查远程端口是否对bash开放: nc -nvv $IP $PORT telnet $IP $PORT 当前任务的前后台切换: Ctrl + z fg 截取变量前5个字符: ${variable:0: ...
- VS2005工程由Pocket PC 2003 SDK转为WINCE6.0 SDK的问题
把VS2005工程有采用的Pocket PC 2003 SDK改为WINCE6.0 SDK,具体操作见链接 http://blog.csdn.net/loongembedded/article/det ...
- Hive简介
实验简介 我们本节课程主要介绍 Hive 的相关知识,将会涉及以下内容: Hive 的定义 Hive 的体系结构 Hive 与关系数据库的区别 Hive 的应用场景 Hive 的存储 一.什么是 Hi ...