hdu 1874 畅通工程续(最短路)
2014-06-30 17:56
274 查看
题目:
链接:点击打开链接
题意:
思路:
dijkstra模板就好。。
代码:
----------------------------------------------------------------
战斗,从不退缩;奋斗,永不停歇~~~~~~~~~~~~~~
链接:点击打开链接
题意:
思路:
dijkstra模板就好。。
代码:
#include <iostream> #include <cstdio> #include <cstring> using namespace std; #define INF 100000000 const int N = 220; const int M = 1010; int n,m; int a,b,c; int s,t; int map ,dis ; void dijkstra(int v) { int vis ; memset(vis,0,sizeof(vis)); for(int i=0; i<n; i++) { dis[i] = map[v][i]; } dis[v] = 0; for(int i=0; i<n; i++) { int x,minn = INF; for(int y=0; y<n; y++) { if(!vis[y] && minn > dis[y]) { minn = dis[x=y]; } } vis[x] = 1; if(minn == INF) return ; for(int y=0; y<n; y++) { if(dis[y] > dis[x] + map[x][y]) dis[y] = dis[x] + map[x][y]; } } } int main() { //freopen("input.txt","r",stdin); while(scanf("%d%d",&n,&m) != EOF) { for(int i=0; i<n; i++) { for(int j=0; j<n; j++) map[i][j] = INF; } for(int i=0; i<m; i++) { scanf("%d%d%d",&a,&b,&c); if(map[a][b] > c) map[a][b] = map[b][a] = c; } scanf("%d%d",&s,&t); dijkstra(s); if(dis[t] < INF) printf("%d\n",dis[t]); else printf("-1\n"); } return 0; }
----------------------------------------------------------------
战斗,从不退缩;奋斗,永不停歇~~~~~~~~~~~~~~
相关文章推荐
- hdu 1874 畅通工程续 - 最短路
- HDU 1874 畅通工程续 + HDU 2544 最短路 最短路水题,floyd水
- hdu 1874 畅通工程续(最短路floyd)
- HDU 1874 畅通工程续 (floyd,dijkstra)(最短路)
- hdu_1874_畅通工程_最短路_dijkstra
- HDOJ/HDU---1874 畅通工程续 最短路(dijkstra)
- HDU 1874 畅通工程续 最短路
- HDU 1874 畅通工程续 (基础最短路)
- hdu1874 畅通工程续 (最短路)
- hdu 1874 畅通工程(最短路)
- HDU1874_畅通工程续(Dijkstra最短路)
- HDU 1874 畅通工程续 + HDU 2544 最短路 最短路水题,floyd水
- hdu 1874 畅通工程续(最短路)
- 【1874】畅通工程续 (最短路四种算法)(HDU)
- HDU1874--畅通工程续--最短路
- HDU1874 畅通工程续(最短路)
- HDU1874:畅通工程续(最短路Dijkstra(n^2+nlogn)+Floyd+SPFA(堆栈+队列))
- hdu 1874 畅通工程续 - 最短路
- hdu 1874 畅通工程续(最短路的dijkstra算法实现&&Floyd算法实现)
- hdu 1874 畅通工程续 最短路 DIS 和 FLOYD