⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 floydwarshall.cpp.svn-base

📁 moses开源的机器翻译系统
💻 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 + -