【HDU1874】畅通工程续【dijkstra】
2015-02-06 16:24
323 查看
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1874
#include<stdio.h> #include<string.h> #define INF 0x3f3f3f #define max 200+10 int dis[max],vis[max]; int m[max][max]; int city,road; int s,e; void dijkstra() { int i,j; int minn; int next; memset(vis,0,sizeof(vis)); for( i=0; i<city; i++) { dis[i]=m[s][i]; } vis[s]=1; for(i=1; i<city; i++) { minn=INF; for( j=0; j<city; j++) { if(vis[j]==0&&minn>dis[j]) { minn=dis[j]; next=j; } } vis[next]=1; for(j=0; j<city; j++) { if(vis[j]==0&&dis[next]+m[next][j]<dis[j]) { dis[j]=dis[next]+m[next][j]; } } } if(dis[e]==INF) printf("-1\n"); else printf("%d\n",dis[e]); } int main() { int i,j,a,b,c; while(~scanf("%d%d",&city,&road)) { for( i=0; i<city; i++) { for( j=0; j<city; j++) { if(i==j) m[i][j]=0; else m[i][j]=INF; } } while(road--) { scanf("%d%d%d",&a,&b,&c); if(m[a][b]>c) { m[a][b]=m[b][a]=c; } } scanf("%d%d",&s,&e); dijkstra(); } return 0; }
相关文章推荐
- (重刷)HDU 1874 畅通工程续 + HDU 2544 最短路 最短路水题,dijkstra解法。
- HDU--1874 -- 畅通工程续 [Dijkstra]
- HDU 1874 畅通工程续(简单Dijkstra)
- HDU 1874 畅通工程续 最短路径入门(dijkstra)
- hdu_1874_畅通工程_最短路_dijkstra
- HDU1874 畅通工程续 解题报告--Dijkstra
- hdu 1874 畅通工程续 Dijkstra
- dijkstra,bellman-ford,floyd,HDU—1874 畅通工程续
- HDU 1874-畅通工程续(最短路Dijkstra+优先队列)
- HDU1874:畅通工程续(最短路Dijkstra(n^2+nlogn)+Floyd+SPFA(堆栈+队列))
- HDU 1874 畅通工程续 SPFA || dijkstra||floyd
- [dijkstra/SPFA/floyd]HDU 1874畅通工程续
- hdu 1874 畅通工程续 (裸的 Dijkstra)
- hdu 1874 畅通工程续(dijkstra)
- HDOJ/HDU---1874 畅通工程续 最短路(dijkstra)
- hdu 1874 畅通工程续(求最短距离,dijkstra,floyd)
- hdu 1874畅通工程续 dijkstra
- hdu 1874 畅通工程续 Dijkstra
- hdu 1874 畅通工程续(dijkstra)
- hdu 1874 畅通工程续 【Dijkstra Floyd-Warshall算法】