в связном неориентированном графе есть нечётный цикл тогда и только тогда, если между двумя вершинами x и y, для которых минимальные расстояния от определённой вершины равны, есть ребро
Я думаю так: если наш цикл нечётный только в одной вершине соединён с остальной частью графа, то для него такое правило выполняется. Теперь возьмём вторую точку соединения. Ясно, что таким образом образуется ещё один цикл. Если во внешнем цикле тоже есть вторая точка, то возьмём цикл ещё больше, и так до тех пор, пока у нас не будет большой цикл с одной точкой соединения
в связном неориентированном графе есть нечётный цикл тогда и только тогда, если между двумя вершинами x и y, для которых минимальные расстояния от определённой вершины равны, есть ребро
Если это свойство выполнено, то нечетный цикл предъявлен Если это свойство не выполнено, проведем BFS из определенной вершины. Любое ребро u <-> v соединяет вершины |d[u] - d[v]| <= 1, и свойство запрещает d[u] - d[v] == 0
Проще всего, если нужен вывод, вручную реализовать двоично-десятичный формат. В uint16 можно хранить числа до 10000. Правда пара бит будут незадействованы. Т.е. у тебя 1 цифра будет от 0 до 9999
извините за немного научпоп-стайл вопрос, но если сплей-деревья такие классные и волшебные, то почему их никто не использует в спортпроге (ну кроме линкката, скажем)?