最短路之Dijkstra算法
1. 邻接矩阵
int cost[MAX_V][MAX_V]; //assume cost[u][v]>0
int d[MAX_V];
bool used[MAX_V];
void Dijkstra(int s, int t, int V){
for(int i=; i<=V; i++)
used[i]=false, d[i]=INT_MAX, pre[i]=;
d[s]=;
while(true){
int u=-;
for(int v=; v<=V; v++){
if(!used[v]&&(u==-||d[v]<d[u])) u=v;
}
if(u==-||u==t) break;
used[u]=true;
for(int v=; v<=V; v++){
if(!cost[u][v]||used[v]) continue;
if(d[v]>d[u]+cost[u][v])
d[v]=d[u]+cost[u][v], pre[v]=u;
}
}
}
2.邻接表
#define X first
#define Y second
typedef pair<int, int> pii;
typedef vector<pii> vpii;
vpii G[MAX_V];
int d[MAX_V];
bool used[MAX_V];
void Dijkstra(int s, int t, int V){
for(int i=; i<=V; i++)
used[i]=false, d[i]=INT_MAX, pre[i]=;
d[s]=;
while(true){
int u=-;
for(int v=; v<=V; v++){
if(!used[v]&&(u==-||d[v]<d[u])) u=v;
}
if(u==-||u==t) break;
used[u]=true;
for(int i=; i<G[u].size(); i++){
int &v=G[u][i].X, &c=G[u][i].Y;
if(used[v]) continue;
if(d[v]>d[u]+c)
d[v]=d[u]+c, pre[v]=u;
}
}
}
最短路之Dijkstra算法的更多相关文章
- 最短路和次短路问题,dijkstra算法
/* *题目大意: *在一个有向图中,求从s到t两个点之间的最短路和比最短路长1的次短路的条数之和; * *算法思想: *用A*求第K短路,目测会超时,直接在dijkstra算法上求次短路; ...
- 单源最短路:Dijkstra算法 及 关于负权的讨论
描述: 对于图(有向无向都适用),求某一点到其他任一点的最短路径(不能有负权边). 操作: 1. 初始化: 一个节点大小的数组dist[n] 源点的距离初始化为0,与源点直接相连的初始化为其权重,其他 ...
- HDOJ 2544 最短路(最短路径 dijkstra算法,SPFA邻接表实现,floyd算法)
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- [Swust OJ 842]--实验室和食堂(最短路,Dijkstra算法)
题目链接:http://acm.swust.edu.cn/problem/842/ Time limit(ms): 1000 Memory limit(kb): 10000 Description ...
- 最短路之 Dijkstra 算法
普通的 Dijkstra 这是一种运用贪心的单源最短路算法,就是求从一个节点出发,到任意一个点的最短距离 首先我们要一个图 假设要求从 1 开始的单源最短路 dis[] 表示最短路数组, vis[] ...
- HDU - 2544最短路 (dijkstra算法)
HDU - 2544最短路 Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以 ...
- hdu2544 最短路 Dijkstra算法
最短路(Dijkstra算法模板题) Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- 最短路模板(Dijkstra & Dijkstra算法+堆优化 & bellman_ford & 单源最短路SPFA)
关于几个的区别和联系:http://www.cnblogs.com/zswbky/p/5432353.html d.每组的第一行是三个整数T,S和D,表示有T条路,和草儿家相邻的城市的有S个(草儿家到 ...
- ACM: HDU 2544 最短路-Dijkstra算法
HDU 2544最短路 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Descrip ...
随机推荐
- 【转】【Asp.Net】asp.net服务器控件创建
VS新建一个Web服务控件工程,会默认生成以下代码: namespace WebControlLibrary { [DefaultProperty("Text")] [Toolbo ...
- C# 【无法修改XX返回值,因为它不是变量】
using UnityEngine; using System.Collections; using System.Xml.Linq; using UnityEditor; using System; ...
- oracle文字与格式字符串不匹配的解决
oracle文字与格式字符串不匹配的解决 oracle的日期时间类型 在往oracle的date类型插入数据的时候,记得要用to_date()方法. 如insert into CUSLOGS(STAR ...
- 基于Html5的移动端开发框架的研究
下面统计信息部分来自网络,不代表个人观点.请大家参考. 基于Html5移动端开发框架调查 序号 框架 简介 优点 缺 ...
- 解决网站在负载均衡环境下SESSION丢失的问题
在WEB场中,动态网页往往会因为几台主机做了负载而产生SESSION丢失的问题,网上也有很多的介绍,我这里只将我经历的过程给大家分享一下: 系统要运行在负载平衡的 Web 场环境中,而系统配置文件 ...
- python 线性回归示例
说明:此文的第一部分参考了这里 用python进行线性回归分析非常方便,有现成的库可以使用比如:numpy.linalog.lstsq例子.scipy.stats.linregress例子.panda ...
- [CareerCup] 4.7 Lowest Common Ancestor of a Binary Search Tree 二叉树的最小共同父节点
4.7 Design an algorithm and write code to find the first common ancestor of two nodes in a binary tr ...
- LeetCode:Best Time to Buy and Sell Stock I II III
LeetCode:Best Time to Buy and Sell Stock Say you have an array for which the ith element is the pric ...
- 分享我收集的引擎、图形学、WebGL方面的电子资料
本文分享我这一年以来收集的我认为比较经典的电子资料,希望能对大家有所帮助! 本文会不断更新! 目录 WebGL Insights OpenGL Insights Game Programming Pa ...
- C# 有关命名法
常用的几种:匈牙利命名法,骆驼命名法,帕斯卡(pascal)命名法就说了. 总结下VS所用的标准命名: 1 ADO.NET 命名规范 数据类型 数据类型简写 标准命名举例 Connection con ...