畅通工程续(dijkstra)
来源:互联网 发布:linux系统安装步骤 编辑:程序博客网 时间:2024/06/05 08:44
题意:求任意两个点之间的最短路径。
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874
代码:
#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <algorithm>#include <queue>using namespace std;const int INF = 1e5;int road[220][1100];bool vis[220];int cost[220];int n,m;void dij(int x){ memset(vis, false,sizeof vis); for(int i=0; i<n; i++) cost[i] = road[x][i]; cost[x] = 0; vis[x] = 1; for(int i=0; i<n; i++) { int temp = INF, k; for(int j=0; j<n; j++) { if(!vis[j] && temp > cost[j]) { temp = cost[j]; k = j; } } vis[k] = true; if(temp == INF) break; for(int l=0; l<n; l++) { if(!vis[l]) { cost[l] = min(cost[l],cost[k] + road[k][l]); } } }}int main(){ while(cin >> n >> m) { int a, b, c; for(int i=0; i<n; i++) fill(road[i], road[i]+n, INF); for(int i=0; i<m; i++) { scanf("%d%d%d",&a,&b,&c); if(road[a][b] > c) road[a][b] = road[b][a] = c; } int start,end1; cin >>start >> end1; dij(start); if(cost[end1] == INF) cout << "-1" << endl; else cout << cost[end1] << endl; } return 0;}
0 0
- 畅通工程续(dijkstra)
- Dijkstra--畅通工程续
- HDU 1874 畅通工程续(Dijkstra)
- HDU 1874 畅通工程续(Dijkstra)
- HDU - 1874 畅通工程续(Dijkstra)
- HDU - 1874 畅通工程续(dijkstra)
- HDU 畅通工程续(Dijkstra)
- hdu1874畅通工程续 (dijkstra)
- hdu1874 畅通工程续(Dijkstra)
- hdu1874畅通工程续dijkstra
- HDU1874 畅通工程续【Dijkstra】
- 【HDU1874】畅通工程续【dijkstra】
- HDU1874-畅通工程续(Dijkstra)
- HDOJ1874 畅通工程续 (Dijkstra)
- HDUOJ_1874(畅通工程续)(最短路径)(dijkstra)
- 【HDU】-1874-畅通工程续(最短路)(dijkstra)
- (hdu1874)畅通工程续(dijkstra算法)
- hdu - 1874 - 畅通工程续(Dijkstra / SPFA)
- Android中Messenger的使用
- mybatis动态SQL语句
- GDB调试
- springmvc Ioc和aop
- 构造函数里面的引用类型属性也是独立的
- 畅通工程续(dijkstra)
- 2016 多校4 1002 After a Sleepless Night 树上贪心
- 机器学习开发者的现代化路径
- Java下载文件后台代码
- 111. PHP 流
- HDU1950 Bridging signals 裸LIS
- android高效ORM数据库框架greenDao使用
- 百度语音合成(TTS) 在Android的使用方法
- JSON的几种解析方法