代码拉取完成,页面将自动刷新
#include<algorithm>
#include<climits>
using namespace std;
//ȫ·㷨 Floyd
class CFloyd
{
static const unsigned N = 110;
unsigned adjacencyMatrix[N][N];
unsigned n;
unsigned shortestDis[N][N];
public:
//start from 1
void init(unsigned n_)
{
unsigned i, j;
n = n_;
for (i = 1; i <= n; ++i)
for (j = 1; j <= n; ++j)
adjacencyMatrix[i][j] = INT_MAX;
}
void setAWay(unsigned a, unsigned b, unsigned weight)
{
if (weight < adjacencyMatrix[a][b]) {
adjacencyMatrix[a][b] = weight;
adjacencyMatrix[b][a] = weight;
}
}
void calculate()
{
unsigned i, j, k;
for (i = 1; i <= n; ++i)
for (j = 1; j <= n; ++j)
shortestDis[i][j] = adjacencyMatrix[i][j];
for (k = 1; k <= n; ++k)
for (i = 1; i <= n; ++i)
for (j = 1; j <= n; ++j)
/*if (shortestDis[i][k] < INT_MAX&& shortestDis[k][j] < INT_MAX)*/shortestDis[i][j] = min(shortestDis[i][j], shortestDis[i][k] + shortestDis[k][j]);
}
unsigned shortestDistance(unsigned from, unsigned to)
{
return shortestDis[from][to];
}
};
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。