Найти граф, состоящий из диаметров графа

189
13 января 2020, 11:50

Мне надо найти граф, являющийся объединением множества всех диаметров графа.

У меня есть взвешенный ориентированный граф, который задан матрицей смежности. Так как диаметром графа будет максимальный из кратчайших путей, то я нашел диаметр по алгоритму Флойда-Уоршелла. Но сейчас не знаю, как найти вершины, из которых состоит сам диаметр. Хотел бы узнать хотя бы примерный алгоритм действий.

Вот мой код:

int main() {
int INF;
INF = 50000;
int n;
cin >> n;
vector <vector<int>> a(n, vector<int>(n));
vector <vector <int>> f(n, vector<int>(n));
for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++) {
        cin >> a[i][j];
        f[i][j] = a[i][j];
        if ((a[i][j] == 0) && (i != j)) {
            a[i][j] = INF;
        }
    }
for (int k = 0; k < n; k++) //floyd
    for (int i = 0; i < n; i++) {
        if (a[i][k] != INF) {
            for (int j = 0; j < n; j++) {
                if ((a[k][j] != INF) && ((a[i][j] == INF) || ((a[i][k] + a[k][j]) < a[i][j]))) {
                    f[i][j] = a[i][k] + a[k][j];
                }
            }
        }
    }
for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
        if (a[i][j] == INF) {
            a[i][j] = 0;
        }
        cout << f[i][j] << " ";
    }
    cout << endl;
}
system("pause");
return 0; 
}
READ ALSO
qt creator смена кодировки

qt creator смена кодировки

Ребят помогите,проблемы в том что char не преобразовывается в wchar, хотя в visual studio этот же код робит, а в qt creator нет, я предполагаю что нужно сменить...

130
Как добавить действие в лямбду C++

Как добавить действие в лямбду C++

Всем приветЯ задумался о создании своего "игрушечного" яп, чисто для того, чтобы убить время

159
Json.hpp не работает с русским языком

Json.hpp не работает с русским языком

мне нужно распарсить json файл, в котором встречаются русские названияНо при парсинге ошибка

120
C++. Вопросы по перегрузке [закрыт]

C++. Вопросы по перегрузке [закрыт]

Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение

134