状态: Unaccepted
测评机: Xeond[6]
得分: 70分
提交日期: 2011-11-10 21:25:00
有效耗时: 该状态没有记录
测试结果1: 测试结果错误.错误结果为:126
正确结果应为:61
测试结果2: 通过本测试点|有效耗时62ms
测试结果3: 通过本测试点|有效耗时47ms
测试结果4: 通过本测试点|有效耗时63ms
测试结果5: 通过本测试点|有效耗时93ms
测试结果6: 测试结果错误.错误结果为:96
正确结果应为:87
测试结果7: 通过本测试点|有效耗时94ms
测试结果8: 测试结果错误.错误结果为:195
正确结果应为:122
测试结果9: 通过本测试点|有效耗时93ms
测试结果10: 通过本测试点|有效耗时125ms
程序如下:
#include<iostream>
using namespace std;
int n,m,f[255][255],a[255][255],mn=700000000;
int min(int x,int y){
return x<y?x:y;}
int main(){
//freopen("a.in","r",stdin);
//freopen("a.out","w",stdout);
int i,j,k,x,y;
cin>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++){
f[i][j]=700000000;
a[i][j]=700000000;}
for(i=1;i<=m;i++){
cin>>x>>y;
cin>>f[x][y];
a[x][y]=a[y][x]=f[y][x]=f[x][y];}
for(i=1;i<=n;i++){
for(j=1;j<i;j++)
for(k=j+1;k<i;k++)
mn=min(mn,a[i][k]+a[k][j]+f[i][j]);
for(j=1;j<=n;j++)
for(k=j+1;k<=n;k++)
if(f[i][k]+f[k][j]<f[i][j])f[i][j]=f[i][k]+f[j][k];
}
if(mn<700000000)cout<<mn<<endl;
else cout<<"He will never come back."<<endl;
return 0;}