文章
15
粉丝
39
获赞
140
访问
6.1k
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
vector<vector<int> > lj(n+1,vector<int>(n+1,0));
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>lj[i][j];
}
}
int res=0;
//逆向思考,每加入一个结点,更新距离图
for(int k=n-1;k>1;k--){
for(int i=1;i<n;i++){
for(int j=i+1;j<=n;j++){
if(lj[i][k]+lj[k][j] < lj[i][j]){
lj[i][j]=lj[i][k]+lj[k][j];
}
if(i>=k) res=res+lj[i][j];
}
}
}
cout<<res*2<<endl;
}
登录后发布评论
暂无评论,来抢沙发