蒟蒻求助Floyd
  • 板块学术版
  • 楼主南瓜桐
  • 当前回复16
  • 已保存回复16
  • 发布时间2022/7/12 23:02
  • 上次更新2023/10/27 20:45:24
查看原帖
蒟蒻求助Floyd
439327
南瓜桐楼主2022/7/12 23:02

https://www.luogu.com.cn/problem/P3371
0分 QAQ

#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
namespace q{
int n,m,s;//点的个数、有向边的个数、出发点的编号
const int maxn = 1e4+1;
int f[maxn][maxn] = {};
const int maxx = 2147483647;
void main(){
	ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	cin>>n>>m>>s;
	
	for(int i = 1; i <= n; ++i){
		for(int j = 1; j <= n; ++j){
			f[i][j] = maxx;
		}
	}
	for(int i = 1; i <= m; ++i){
		int x,y,z;
		cin>>x>>y>>z;
		f[x][y] = min(f[x][y],z);
	}
	for(int k = 1; k <= n; ++k){
		for(int i = 1; i <= n; ++i){
			if(i==k||f[i][k]==maxx)
            {
                continue;
			}
			for(int j = 1; j <= n; ++j){
				f[i][j] = min(f[i][j],f[i][k]+f[k][j]);
			}
		}
	}
	f[s][s] = 0;
	for(int i = 1; i <= n; ++i){
	
		cout<<f[s][i]<<' ';
	}

}
}


int main(){
	q::main();
	return 0;
}
//https://www.luogu.com.cn/problem/P3371
2022/7/12 23:02
加载中...