标签:
#include<stdio.h> #include<string.h> #include<algorithm> #define INF 0x3f3f3f using namespace std; int N,M; int map[101][101]; int main() { while(~scanf("%d%d",&N,&M)) { for(int i=0;i<N;i++) { for(int j=0;j<N;j++) { if(i==j) map[i][j] = 0; else map[i][j] = INF; } } int a,b,c; for(int i=0;i<M;i++) { scanf("%d%d%d",&a,&b,&c); map[a][b] = min(map[a][b],c);//这一步很重要 map[b][a] = min(map[a][b],c);//要考虑点的覆盖问题 } int s,e; scanf("%d%d",&s,&e); for(int k=0;k<N;k++) for(int i=0;i<N;i++) for(int j=0;j<N;j++) { map[i][j] = min(map[i][j],map[i][k]+map[k][j]); } if(map[s][e]!=INF) printf("%d\n",map[s][e]); else printf("-1\n"); } return 0; }
标签:
原文地址:http://www.cnblogs.com/valar/p/4747433.html