文章

15

粉丝

39

获赞

140

访问

6.1k

头像
疑问:为什么超时了呀感觉没有地方能再优化了
P1631 上海交通大学机试题
发布于2025年2月27日 20:38
阅读数 174

#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;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发