hdu 1599 最小环

来源:互联网 发布:ipad删除软件 编辑:程序博客网 时间:2024/06/04 18:57
/*初识最小环渣*/#include<cstdio>#define inf 999999#define min(a,b) (a)>(b)?(b):(a)int main(){int map[150][150],g[150][150];int n,m,i,j,k,ans,a,b,c;while(scanf("%d%d",&n,&m)!=EOF){ans=inf;for(i=1;i<=n;i++)for(j=1;j<=n;j++)g[i][j]=inf;for(i=1;i<=m;i++){scanf("%d%d%d",&a,&b,&c);if(g[a][b]>c) g[a][b]=g[b][a]=c;}for(i=1;i<=n;i++)for(j=1;j<=n;j++)map[i][j]=g[i][j];for(k=1;k<=n;k++){for(i=1;i<k;i++)for(j=i+1;j<k;j++)ans=min(ans,map[i][j]+g[i][k]+g[k][j]);for(i=1;i<=n;i++)for(j=1;j<=n;j++)map[i][j]=min(map[i][j],map[i][k]+map[k][j]);}if(ans==inf)printf("It's impossible.\n");elseprintf("%d\n",ans);}return 0;}

原创粉丝点击