首页 > 代码库 > hdu 1599 find the mincost route
hdu 1599 find the mincost route
http://acm.hdu.edu.cn/showproblem.php?pid=1599
floyd找最小环。
1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #define maxn 200 5 using namespace std; 6 const int inf=1<<28; 7 8 int g[maxn][maxn],dis[maxn][maxn]; 9 int n,m,a,b,c; 10 11 int main() 12 { 13 while(scanf("%d%d",&n,&m)!=EOF) 14 { 15 for(int i=1; i<=n; i++) 16 { 17 for(int j=1; j<=n; j++) 18 { 19 g[i][j]=inf; 20 } 21 } 22 for(int i=0; i<m; i++) 23 { 24 scanf("%d%d%d",&a,&b,&c); 25 g[a][b]=g[b][a]=min(g[a][b],c); 26 } 27 for(int i=1; i<=n; i++) 28 { 29 for(int j=1; j<=n; j++) 30 { 31 dis[i][j]=g[i][j]; 32 } 33 } 34 int min1=inf; 35 for(int k=1; k<=n; k++) 36 { 37 for(int i=1; i<k; i++) 38 { 39 for(int j=1; j<i; j++) 40 { 41 min1=min(min1,dis[i][j]+g[i][k]+g[k][j]); 42 } 43 } 44 for(int i=1; i<=n; i++) 45 { 46 for(int j=1; j<=n; j++) 47 { 48 dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]); 49 } 50 } 51 } 52 if(min1==inf) 53 printf("It‘s impossible.\n"); 54 else 55 printf("%d\n",min1); 56 } 57 return 0; 58 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。