单源最短路(Dijkstra)邻接表实现
来源:互联网 发布:abb机器人编程培训 编辑:程序博客网 时间:2024/05/22 12:08
#include<iostream>#include<cstdio>#define dif 999999999using namespace std;struct haha{ int u; int v; int w;}e[1001];int dis[100];int book[100];int next[1001],first[100];int main(){ int n,m; int cnt=0; cin >> n >> m; int i,j,k,w; for(i=1;i<=n;i++) dis[i]=dif; for(i=1;i<=m;i++) first[i]=-1; for(i=1;i<=m;i++){ cin >> e[i].u >> e[i].v >> e[i].w;//有重边的情况在后面会处理 next[i]=first[e[i].u]; first[e[i].u]=i; } book[1]=0;dis[1]=0;cnt++; int index=first[1];//邻接表的方便之处就在于,不必每次都遍历每一个点去看有没有边,可以直接操作有边的点。 while(index!=-1){ if(dis[e[index].v]>e[index].w)//只需要在这里处理源点有重边的情况,后面的就算有重边也会自动采用最小那个。 dis[e[index].v]=e[index].w; index=next[index]; } int mins,u=1; while(cnt<n-1){ mins=dif; index=first[u]; while(index!=-1){ if(book[e[index].v]==0 && mins>e[index].w){ mins=e[index].w; u=e[index].v; } index=next[index]; } book[u]=1;cnt++; //松弛(注意下面可以用到u,但不可改变u的值) index=first[u]; while(index!=-1){ if(dis[e[index].v]>e[index].w+dis[e[index].u]) dis[e[index].v]=e[index].w+dis[e[index].u]; index=next[index]; } } for(i=1;i<=n;i++) printf("%6d",dis[i]); return 0;}
阅读全文
0 0
- 单源最短路(Dijkstra)邻接表实现
- 最短路模板(dijkstra+邻接表)
- HDU 2544 最短路(单源最短路 dijkstra / floyd / dijkstra(堆优化)/dijkstra+邻接链表+堆优化)
- 最短路模板——dijkstra,SPFA(邻接表实现)
- hdoj 2544 最短路 【dijkstra + floyd + spfa邻接表实现】
- C++Dijkstra邻接表实现
- HDOJ 2544 最短路(最短路径 dijkstra算法,SPFA邻接表实现,floyd算法)
- 邻接表实现最短路
- 基于邻接表的有回溯最小堆优化的单源最短路Dijkstra算法
- 最短路 + 邻接表 + 堆优化(模板)(Dijkstra + SPFA)
- poj 1847 最短路 dijkstra模板(vector邻接表+队列优化)
- HDU 2544 最短路 静态邻接表+优先队列 dijkstra
- HDU2544_最短路(Dijkstra)(Bellman-Ford)(SPFA+邻接表/邻接矩阵)
- hrbust 1339 Touring 最短路Dijkstra 邻接表
- hdu 2544 最短路(Dijkstra 邻接表+优先队列)
- POJ 3255 Roadblocks(dijkstra+邻接表求解次短路问题)
- POJ 3255 Roadblocks(次短路,Dijkstra变形+邻接表存储)
- poj 3255 次短路问题 Dijkstra 邻接表
- HDU6119 小小粉丝度度熊(区间)
- 【jquery】解决轮播图鼠标快速移入移出导致bug思路
- UVA
- SQL注入之GET型常规注入
- 通过父元素无视动态dom节点给元素挂事件
- 单源最短路(Dijkstra)邻接表实现
- js中==和===的区别
- android基础-TextView及其子类、ImageView及其子类
- linux环境下为php7装phpredis扩展
- DFS与BFS小结
- Linux下配置两个或多个Tomcat启动
- HDU-Inversion
- 第二行代码第一章(Android原理)
- PhotoShop CS6 安装及破解