邻接表实现最短路算法
来源:互联网 发布:python 命令行 编辑:程序博客网 时间:2024/05/16 18:06
<span style="font-family:Courier New;">#include <cstdio>#include <cstring>#include <string>#include <iostream>using namespace std;const int MAXN=1000+5;const int MAXM=100000+5;const int INF=0x7fffffff;struct Edge{ int u,v,w,next;};Edge e[MAXM];int dis[MAXN],vis[MAXN],pre[MAXN];int main(){ int N,M,C,D,K; while(scanf("%d%d%d%d%d",&N,&M,&C,&D,&K)!=EOF) { memset(pre,-1,sizeof(pre)); for(int i=1;i<=M;i++) { scanf("%d%d%d",&e[i].u,&e[i].v,&e[i].w); e[i].next=pre[e[i].u]; pre[e[i].u]=i; } for(int i=1;i<=N;i++) { dis[i]=INF; } memset(vis,0,sizeof(vis)); dis[C]=0; for(int t=1;t<=N;t++) { int x,m=INF; for(int j=1;j<=N;j++) { if(dis[j]<=m && !vis[j]) { x=j; m=dis[j]; } } vis[x]=1; for(int j=pre[x];j!=-1;j=e[j].next) { if(dis[e[j].v]>dis[e[j].u]+e[j].w) dis[e[j].v]=dis[e[j].u]+e[j].w; } } if(dis[D]<=K) printf("%d\n",dis[D]); else printf("Sorry\n"); cout<<INF<<endl; } return 0;}</span>
0 0
- 邻接表实现最短路算法
- 邻接表实现最短路
- 最短路SPFA算法 (通过邻接表来实现)
- 邻接表的最短路算法
- HDOJ 2544 最短路(最短路径 dijkstra算法,SPFA邻接表实现,floyd算法)
- 蓝桥杯算法训练——最短路(map实现邻接表)
- poj Wormholes (最短路 spfa Bellman-Ford 算法 邻接表实现)
- C--最短路 ----邻接表存储及SPFA算法
- 最短路+邻接表+最小堆的C++代码实现
- 最短路模板——dijkstra,SPFA(邻接表实现)
- hdoj 2544 最短路 【dijkstra + floyd + spfa邻接表实现】
- SPFA单源最短路算法—vector模拟邻接表实现
- hdu 2544 最短路 (邻接表)
- HDU 2544 最短路(spfa邻接表)
- 最短路模板(dijkstra+邻接表)
- 最短路-邻接表(优先队列)写
- 哈理工oj Touring (最短路 dij算法 邻接表 + 队列 )
- 邻接表(spfa算法---单源最短路)
- 第八周项目(1)-数组做数据成员(工资)
- 过河问题
- 第四章--android核心组件之Activity与ListActivity中使用ListView的区别
- 在Ubuntu应用中合理使用on-screen-keyboard来使得我们的输入更加便利
- android adb, retrieve database using run-as
- 邻接表实现最短路算法
- Android LinkedHashMap源码详解
- 快速解决光标由竖线变黑块
- Android 之 Drawable
- 初始化Maven
- 个人开发安卓遇到的一些问题收集【仅解决个人问题】
- 通过CDHDR CDPOS获取增量数据
- Git专题--系统的学习Git之二
- 聊天(蘑菇街)-Java