普通dijkstra(邻接矩阵)
来源:互联网 发布:u3d 粒子特效优化 编辑:程序博客网 时间:2024/05/16 07:47
#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<iostream>#define inf 999999999#define maxn 20005using namespace std;int g[maxn][maxn];int dist[maxn];int vis[maxn];int n,m;void dijkstra(int st){int i,j,mindis,u;memset(vis,0,sizeof(vis));for(i=1;i<=n;i++){dist[i]=g[st][i];}vis[st]=1;for(i=1;i<=n;i++){mindis=inf;u=-1;for(j=1;j<=n;j++){if(!vis[j]&&mindis>dist[j]){mindis=dist[j];u=j;}}if(u==-1)break;vis[u]=1;for(j=1;j<=n;j++){if(!vis[j]&&dist[j]>dist[u]+g[u][j]){dist[j]=dist[u]+g[u][j];}}}}int main(){int i,j,t;while(scanf("%d%d",&n,&m)!=EOF){for(i=1;i<=n;i++){for(j=1;j<=n;j++){if(i==j)g[i][j]=0;else g[i][j]=inf;}dist[i]=inf;}for(i=0;i<m;i++){int a,b,x;scanf("%d%d%d",&a,&b,&x);a++;b++;if(g[a][b]>x)g[a][b]=g[b][a]=x;}int u,v;scanf("%d%d",&u,&v);u++;v++;dijkstra(u);if(dist[v]==inf)printf("-1\n");else printf("%d\n",dist[v]);}return 0;}/*3 30 1 10 2 31 2 10 23 10 1 11 2*//*2-1*/
阅读全文
0 0
- 普通dijkstra(邻接矩阵)
- Dijkstra模板(邻接矩阵)
- 堆(优先队列)优化dijkstra(邻接矩阵)
- Dijkstra单源最短路,邻接矩阵形式(模板)
- Dijkstra (邻接矩阵的另一种实现)
- POJ1556 计算几何+Dijkstra(邻接矩阵)
- HDU 1874 Dijkstra (迪杰斯特拉)(队列及邻接矩阵)
- 图的邻接矩阵实现(包括PRIM和DIJKSTRA算法)
- 最短路径算法之Dijkstra算法(邻接矩阵实现)
- Dijkstra(邻接矩阵有向图)C 实现~
- Dijkstra算法1:邻接矩阵表示
- Dijkstra算法之邻接矩阵实现
- [数据结构] 邻接矩阵实现Dijkstra算法
- 最短路径(二)—Dijkstra算法(通过边实现松弛:邻接矩阵)
- 第4章 贪心算法,Dijkstra算法(邻接矩阵存储,时间复杂度为O(n^2))
- 基于邻接矩阵存储的图的最短路径问题(Dijkstra算法)
- HDU 2112 HDU Today (最短路(dijkstra邻接矩阵) + hash + 二分)
- 图的邻接矩阵表示与最短路径算法( Dijkstra )代码实现
- 在jsp页面上直接打开PDF文件
- 第二堂课
- 奥威快消行业数据分析软件Power-BI --分省份分产品销售分析
- Pthread导致的memory leak
- java后台处理/Date()/格式时间戳
- 普通dijkstra(邻接矩阵)
- centos7安装docker
- 后端接口的幂等性
- HAUT1289 arufuonsusnoufura(区间dp,河南省多校连萌(七))
- ES6之Object.assign()详解
- 浏览器渲染页面原理
- SGISTL源码探究-list容器(上)
- 7. Reverse Integer
- GitChat · 人工智能 | 用语音和自然语言控制智能家居——实例分享