Dijkstra最短路
来源:互联网 发布:网络歌曲2016 编辑:程序博客网 时间:2024/04/29 04:38
邻接矩阵表示
#include<stdio.h>#include<map>#include<queue>#include<string.h>#include<math.h>#include<algorithm>#include<vector>using namespace std;#define MAX_V 510#define INF 1000000000int n;int m;int start;int end;int G[MAX_V][MAX_V];int weight[MAX_V];int d[MAX_V];int w[MAX_V];int num[MAX_V];bool visited[MAX_V];void Dijkstra(int s){ fill(d,d+MAX_V,INF); memset(num,0,sizeof(num)); memset(w,0,sizeof(w)); d[s]=0; w[s]=weight[s]; num[s]=1; for(int i=0;i<n;i++){ int u=-1,MIN=INF; for(int j=0;j<n;j++){ if(!visited[j]&&d[j]<MIN){ u=j; MIN=d[j]; } } if(u==-1) return ; visited[u]=true; for(int v=0;v<n;v++){ if(!visited[v]&&G[u][v]!=INF&&d[u]+G[u][v]<d[v]){ d[v]=d[u]+G[u][v]; } } }}int main(){ scanf("%d%d%d%d",&n,&m,&start,&end); for(int i=0;i<n;i++){ scanf("%d",&weight[i]); } int u,v; fill(G[0],G[0]+MAX_V*MAX_V,INF); for(int i=0;i<m;i++){ scanf("%d%d",&u,&v); scanf("%d",&G[u][v]); G[v][u]=G[u][v]; } Dijkstra(start); printf("%d %d",num[end],w[end]);}
0 0
- 最短路 Dijkstra算法
- 最短路之dijkstra
- hdu1874 Dijkstra 最短路
- HUD最短路 (Dijkstra)
- hdu2544 Dijkstra最短路
- 最短路之Dijkstra
- 图论 最短路 Dijkstra
- Dijkstra 求最短路
- dijkstra最短路 hdu2066
- Dijkstra 求最短路
- 最短路dijkstra--poj2502
- HDU2544:最短路(Dijkstra)
- 最短路 dijkstra模板
- 最短路(dijkstra)
- 最短路算法Dijkstra
- Dijkstra最短路算法
- 最短路-dijkstra
- 最短路(dijkstra)
- iOS 多线程与GCD
- java:BufferReader And BufferWriter合并文件
- Java之IO流---字节流
- hdu_5963:朋友
- 交易记录表设计注意点
- Dijkstra最短路
- opencv的arm移植
- CMS内容管理系统开发-需求分析
- System.currentTimeMillis()
- printf小结
- Eclipse中好用的快捷键
- 第一道概率dp,
- Greenplum优化--SQL调优篇
- PAT 1035