#include<iostream>
#include<cctype>
#include<sstream>
#include<string>
#include<algorithm>
#include<map>
#include<cstring>
#include<cstdio>
#include<iomanip>
#include<vector>
#include<queue>
using namespace std;
const int INF = 100000000;
void ch_status(vector<vector<int> > & W, vector<vector<int> > & P, int nNodes) {
//DP, just like bellmanford.
for (int i = 0; i < nNodes; ++i) {
for (int j = 0; j < nNodes; ++j) {
if (i == j || W[i][j] == INF)
P[i][j] = -1;
else
P[i][j] = i;
}
}
for (int k = 0; k < nNodes; ++k) {
for (int i = 0; i < nNodes; ++i) {
for (int j = 0; j < nNodes; ++j) {
if (W[i][j] > W[i][k] + W[k][j]) {
W[i][j] = W[i][k] + W[k][j];
P[i][j] = P[k][j];
}
}
}
}
}
void disp
C++实现带路径记录的Floyd-Warshall算法
最新推荐文章于 2024-02-15 19:37:52 发布