Я сталкивался с этой реализацией floyd, но у меня есть вопрос относительно того, что 't' хранит в качестве значений, так как полеты - это вектор векторов.(Я понимаю, как работает алгоритм.)
//vector<vector<int>>& flights
//vector<vector<int>> vec(n, vector<int>(k + 1));
for (int i = 1; i <= k; i++)
{
for (int j = 0; j < n; j++)
{
vec[j][i] = vec[j][i - 1];
for (const vector<int>& t : flights)
{
vec[t[1]][i] = min(vec[t[1]][i], vec[t[0]][i - 1] + t[2]);
}
}
}