最短路 - Dijkstra()
来源:互联网 发布:42u图腾网络机柜尺寸 编辑:程序博客网 时间:2024/05/22 00:50
http://acm.nyist.net/JudgeOnline/problem.php?pid=115
#include <stdio.h>#include <string.h>#include <iostream>#include <stdlib.h>#define inf 0x3f3f3f3f#define N 1005using namespace std;int d[N], G[N][N], vis[N], city[101];int m, n, p, q;void dijkstra(int v){ int i, j, minn, k; for (i = 1; i <= m; i++) d[i] = G[v][i]; memset(vis, 0, sizeof(vis)); vis[v] = 1; d[v] = 0; for (i = 1; i <= m; i++) { minn = inf; k = v; for (j = 1; j <= m; j++) { if (!vis[j] && d[j] < minn) { k = j; minn = d[j]; } } if (minn == inf) break; vis[k] = 1; for (j = 1; j <= m; j++) { if (!vis[j] && minn + G[k][j] < d[j]) d[j] = G[k][j] + d[k]; } }}int main(){ int T, i, j; int a, b, c; int temp; scanf("%d", &T); while (T--) { temp = inf; for (i = 0; i < N; i++) for (j = 0; j < N; j++) G[i][j] = inf; scanf("%d%d%d%d", &n, &m, &p, &q); for (i = 1; i <= n; i++) scanf("%d", city + i); while (p--) { scanf("%d%d%d", &a, &b, &c); if (G[a][b] > c) G[a][b] = G[b][a] = c; } dijkstra(q); for (i = 1; i <= n; i++) if (temp > d[city[i]]) temp = d[city[i]]; printf("%d\n", temp); } return 0;}
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)
- jQuery 中bind(),live(),delegate(),on() 区别
- iOS学习笔记28-JS执行过程分析
- 网页代码中用<%=request.getContextPath()%>和不用的区别?
- 【烙铁使用规范】——烙铁的使用
- [android]service中启activity
- 最短路 - Dijkstra()
- wordpress建立自定义菜单
- Pilots(pilots)题解
- Runtime.getRuntime().exec(strMakePathPath);
- 【CCF】相反数
- 使用ServletContextListener无法直接注入sping配置文件中接口解决办法
- mysql报错:could not find settings Either the server service or the configuration file could not be fou
- PHP函数随机学习。
- 验证码短信接口如何使用