HDU_1874——最短路问题,Dijkstra算法模版
现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离。
0 1 1
0 2 3
1 2 1
0 2
3 1
0 1 1
1 2
-1
#include <cstdio>
const int MAX = ;
int n,m,map[][]; int Dijkstra(int s,int e)
{
if(s==e)
return ; int mark[]={},t;
mark[s]=;
m=n-;
while(m--)
{
for(int i=,min=MAX;i<n;i++)
{
if(!mark[i] && map[s][i]<min)
{
t=i;
min=map[s][i];
}
}
mark[t]=;
for(int i=;i<n;i++)
{
if(!mark[i] && map[s][t]+map[t][i]<map[s][i])
{
map[s][i]=map[s][t]+map[t][i];
}
}
}
if(map[s][e]!=MAX)
return map[s][e];
else
return -;
} int main()
{
while(~scanf("%d%d",&n,&m))
{
for(int i=;i<n;i++)
{
for(int j=;j<n;j++)
{
map[i][j]=MAX;
}
} int a,b,x;
for(int i=;i<m;i++)
{
scanf("%d%d%d",&a,&b,&x);
if(x<map[a][b])
{
map[a][b]=map[b][a]=x;
}
} scanf("%d%d",&a,&b);
printf("%d\n",Dijkstra(a,b));
}
return ;
}
HDU_1874——最短路问题,Dijkstra算法模版的更多相关文章
- 一个人的旅行(hdu2066)Dijkstra算法模版
一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- 最短路问题---Dijkstra算法学习
Dijkstra又称单源最短路算法,就从一个节点到其他各点的最短路,解决的是有向图的最短路问题 此算法的特点是:从起始点为中心点向外层层扩展,直到扩展到中终点为止. 该算法的条件是所给图的所有边的权值 ...
- 最短路问题 Dijkstra算法- 路径还原
// 路径还原 // 求最短路,并输出最短路径 // 在单源最短路问题中我们很容易想到,既然有许多条最短路径,那将之都存储下来即可 // 但再想一下,我们是否要把所有的最短路径都求出来呢? // 实际 ...
- 最短路问题Dijkstra算法
Dijkstra算法可以解决源点到任意点的最短距离并输出最短路径 准备: 建立一个距离数组d[ n ],记录每个点到源点的距离是多少 建立一个访问数组v[ n ],记录每个点是否被访问到 建立一个祖先 ...
- 单源最短路问题 Dijkstra 算法(朴素+堆)
选择某一个点开始,每次去找这个点的最短边,然后再从这个开始不断迭代,更新距离. 代码: 朴素(vector存图) #include <iostream> #include <cstd ...
- ACM: HDU 3790 最短路径问题-Dijkstra算法
HDU 3790 最短路径问题 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Des ...
- 最短路问题之Dijkstra算法
题目: 在上一篇博客的基础上,这是另一种方法求最短路径的问题. Dijkstra(迪杰斯特拉)算法:找到最短距离已经确定的点,从它出发更新相邻顶点的最短距离.此后不再关心前面已经确定的“最短距离已经确 ...
- dijkstra算法解决单源最短路问题
简介 最近这段时间刚好做了最短路问题的算法报告,因此对dijkstra算法也有了更深的理解,下面和大家分享一下我的学习过程. 前言 呃呃呃,听起来也没那么难,其实,真的没那么难,只要弄清楚思路就很容易 ...
- HDU 1874 畅通工程续-- Dijkstra算法详解 单源点最短路问题
参考 此题Dijkstra算法,一次AC.这个算法时间复杂度O(n2)附上该算法的演示图(来自维基百科): 附上: 迪科斯彻算法分解(优酷) problem link -> HDU 1874 ...
随机推荐
- [转] C++指针加整数、两个指针相减的问题
http://blog.csdn.net/onlyou930/article/details/6725051 说来惭愧,写C++有一段时间了.这个问题从来没有认真考虑过,此次标记于此: 考虑如下问题: ...
- Linux下/etc/fstab文件详解
当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录. [root@rusky ~]# vi /etc/fstab # # /etc/fstab # C ...
- bom头惹的祸!
今天使用json_decode函数解析json数据一直出错,最后发现j用浏览器开发者工具发现json数据前面多了个$#65279,查询得知是bom头; 网上找的去除bom头的代码如下: <?ph ...
- JavaScript设计模式之策略模式(学习笔记)
在网上搜索“为什么MVC不是一种设计模式呢?”其中有解答:MVC其实是三个经典设计模式的演变:观察者模式(Observer).策略模式(Strategy).组合模式(Composite).所以我今天选 ...
- Ext.ComponentQuery.query()
转载:http://blog.csdn.net/jiushuai/article/details/7938476 用来找特点的所有容器(Ext.container.Container)或是通过Ext. ...
- c - 字符串的反转
1,递归实现 // 递归实现字符串反转(可通过栈的调用来加深理解). char * reverse(char *c) { if(!c) return NULL; int len = strlen(c) ...
- Linux下svn命令switch用法
# svn info /data/www/49you/api.49you.com Path: /data/www/49you/api.49you.comURL: svn://192.168.10.81 ...
- Swift - 09 - Optionals
//: Playground - noun: a place where people can play import UIKit // swift中没有被赋值的变量是不能被使用的 //var str ...
- bootstrap sr-only
有时候 UI 上会出现一些仅供视觉识别的元素,比如说“汉堡包菜单按钮”,只有视力正常的人才能清楚辨识这些元素的作用.而残障人士,比如弱势或盲人是不可能知道这些视觉识别元素是什么的.他们上网使用的是屏幕 ...
- phpcms v9自定义表单提交后返回上一页实现方法
PHPcms v9中提交自定义表单后默认都是回到首页的,是不是感觉很不爽! 接下来,就说下phpcms v9自定义表单提交后返回上一页实现方法. 1.找到这个文件 phpcms\modules\for ...