Я сделал эту функцию несколько дней назад, чтобы найти диаметр графа с помощью BFS:Поиск узла, который имеет наименьшее максимальное расстояние до всех других узлов в графе с использованием BFS?
dist[v] = 0;
queue<int> next;
next.push(v);
int bdist = 0; //biggest distance
while(!next.empty()) {
int pos = next.front();
next.pop();
bdist = dist[pos];
for(int i = 0; i < graph[pos].size(); ++i) {
int nghbr = graph[pos][i];
if(dist[nghbr] > dist[pos]+1) {
dist[nghbr] = dist[pos]+1;
next.push(nghbr);
}
}
}
return bdist-1;
}
Как/что я могу изменить в коде, так что вместо того, чтобы вернулся диаметр, я вместо того, чтобы получить вернулся узел который имеет наименьшее максимальное расстояние до всех остальных узлов? Как будет выглядеть новый код?
что вы имеете в виду наименьшее максимальное расстояние для всех узлов, пожалуйста, подробно –
@VikramBhat для всех узлов найти узел с максимальным расстоянием от него, а затем среди них все максимально выбрать одно с минимальной – sashas
@sasha получить, что благодаря –