📄 floydwarshall.cpp.svn-base
字号:
#include <cassert>#include <climits>#include <vector>#define MAX_DIST (INT_MAX / 2)//#include "FloydWarshall.h"// All-pairs shortest path algorithmvoid floyd_warshall(const std::vector<std::vector<bool> >& edges, std::vector<std::vector<int> >& dist){ assert(edges.size() == edges.front().size()); dist.clear(); dist.resize(edges.size(), std::vector<int>(edges.size(), 0)); size_t num_edges = edges.size(); for (size_t i=0; i<num_edges; ++i) { for (size_t j=0; j<num_edges; ++j) { if (edges[i][j]) dist[i][j] = 1; else dist[i][j] = MAX_DIST; if (i == j) dist[i][j] = MAX_DIST; } } for (size_t k=0; k<num_edges; ++k) for (size_t i=0; i<num_edges; ++i) for (size_t j=0; j<num_edges; ++j) if (dist[i][j] > (dist[i][k] + dist[k][j])) dist[i][j] = dist[i][k] + dist[k][j];}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -