首页 > 代码库 > poj-2387 Til the Cows Come Home
poj-2387 Til the Cows Come Home
题目链接:http://poj.org/problem?id=2387
dij 注意判重边
#include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <time.h> using namespace std; const int MAXV = 4010; const int inf = 10000000; int map[MAXV][MAXV]; int d[MAXV]; bool vis[MAXV]; int n,m; void dijkstra(int s) { for(int i=1;i<=n;i++) { vis[i]=0; d[i]=map[s][i]; } while (1) { int min=inf,v = -1; for(int i=1;i<=n;i++) if(!vis[i] && d[i]<min) { v=i; min=d[i]; } if(v == -1) break; vis[v]=1; for(int i=1;i<=n;i++) if(!vis[i] && d[i] > d[v] + map[v][i]) d[i]=map[v][i]+d[v]; } } int main() { int i,j,a,b,c; while(scanf("%d%d",&m,&n) != EOF) { for(i=1;i<=n;i++) for(j=1;j<=n;j++) { if(i==j) map[i][i]=0; else map[i][j]=map[j][i]=inf; } for(i=1;i<=m;i++) { scanf("%d%d%d",&a,&b,&c); if(map[a][b]>c) map[a][b]=map[b][a]=c; } dijkstra(1); printf("%d\n",d[n]); } return 0; }
poj-2387 Til the Cows Come Home
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。