讨论 / 超短C++
sen20100528 2013-10-29 07:44:00
点我顶贴 收藏 删除
#include<iostream>

#include<cstdio>

#include<cstring>

#include<cmath>

using namespace std;

int main()

{

int i,j,k,m,n,t;

long long int minans=999999,d[251][251],l[251][251];

for(i=0;i<=250;i++)

for(j=0;j<=250;j++)

{d[i][j]=999999;l[i][j]=999999;}

scanf("%d%d",&n,&m);

for(i=1;i<=m;i++)

{

scanf("%d%d%d",&k,&j,&t);

l[k][j]=t;

l[j][k]=t;

d[k][j]=t;

d[j][k]=t;

}

for(k=1;k<=n;k++)

{

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

{

if(d[i][j]+l[i][k]+l[k][j]<minans)

minans=d[i][j]+l[i][k]+l[k][j];

if(d[i][k]+d[k][j]<d[i][j]&&i!=k&&k!=j&&i!=j)d[i][j]=d[i][k]+d[k][j];

}

}

if(minans==999999)cout<<"He will never come back.";

else cout<<minans;

return 0;

}

查看更多回复
提交回复