为什么wa 6 7

#include<bits/stdc++.h>
using namespace std;
const int maxn=101;
int w[maxn][maxn];
int flag=0;
int edge[maxn][maxn];
int n,m;
int ans=1e9;
void floyd(){

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

for(int i=1;i<k;i++)
for(int j=i+1;j<k;j++){
ans=min(ans,edge[i][k]+edge[k][j]+w[i][j]);
}
for(int i=1;i<=n;i++)

for(int j=1;j<=n;j++){
if(i!=j)
w[i][j]=min(w[i][j],w[i][k]+w[k][j]);
}
}
if(ans==1e9)
flag=1;
}
void init(){
for(int i=0;i<maxn;i++)
for(int j=0;j<maxn;j++){
edge[i][j]=w[i][j]=1e9;
}
}
int main(){

while(cin>>n>>m){
init();
ans=1e9;
int a,b,c;
for(int i=1;i<=m;i++){
cin>>a>>b>>c;
edge[a][b]=edge[b][a]=w[a][b]=w[b][a]=c;
}
floyd();
if(flag==1)
cout<<"No solution."<<endl;
else
cout<<ans<<endl;
}
return 0;
}

1 条评论

  • 1

信息

ID
1046
难度
6
分类
图结构 | 最短路 点击显示
标签
(无)
递交数
4760
已通过
1269
通过率
27%
被复制
11
上传者