讨论 / 怎么。。。。。。。。。70???????
wh3z_wsc 2011-11-10 05:26:00
点我顶贴 收藏 删除
题目:心灵的抚慰

状态: 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;}

查看更多回复
提交回复