Тема: Наименьший общий предок (как задать граф?)
код, который я здесь привожу - из http://e-maxx.ru/algo/lca
Вероятно мой вопрос наивен, но - как задаётся граф в этом алгоритме? Да и не только в этом.
typedef vector < vector<int> > graph; - что это значит?
< vector<int> > - это вектор состоящий из номеров двух вершин в любом порядке?
тогда graph - вектор этих пар, стоящих в любом порядке?
откуда начинается нумерация вершин графа? i=0..n или i=1..n?
в программе написано - int n = (int) g.size(); т.е. если число вершин в дереве N, то n=N-1;
lca_h.resize (n); то есть размер вектора lca_h не больше N-1;
Но далее идёт обращение lca_h[v], как это возможно, если v может быть равен N ?
Заранее спасибо за ответ