|
Имя ( регистрация )
Метки
|
Задача G: Дерево и белка
Связная структура данных "дерево" предполагает наличие вершин и связей между ними. Циклов в дереве нет. Одна вершина дерева называется корнем, все вершины достижимы из нее. В этой задаче корнем всегда будет вершина 1.
На одной из вершин дерева находится белка. За один прыжок она может перепрыгнуть на любую вершину, находящуюся от нее на расстоянии не более чем K. Расстоянием называется количество ребер на пути из одной вершины до другой. Величину K будем называть прыгучестью белки. Например, для дерева на рисунке, если K = 2 и белка находится в вершине 5, то белка может перепрыгнуть на вершины 1, 2, 3, 7, 8 и 9. ![]() Первоначально, белка находится в вершине 1. Она хочет совершить последовательность прыжков, чтобы побывать на каждой вершине дерева, не посещая никакую два или более раза. Какой наименьшей прыгучестью должна обладать белка, чтобы совершить такое путешествие? Найдите и сам маршрут. Все деревья в этой задаче удовлетворяют интересному свойству: для каждой вершины количество ее сыновей отлично от 1. Сыновьями вершины называются такие смежные с ней вершины, которые расположены дальше от корня, чем она сама. Входные данные. В первой строке входного файла записано целое число N (3 ≤ N ≤ 30000), где N - количество вершин в дереве. Далее следует строка, содержащая N - 1 число, описывающее дерево. Первое из этих чисел содержит номер вершины, смежной со второй, но расположенной ближе к корню, чем она сама. Второе из чисел содержит подобную информацию для третьей вершины, и т.д. Таким образом, i-ое число содержит подобную информацию для вершины i +1. Выходные данные. В первую строку выведите наименьшую возможную прыгучесть белки. Во вторую строку выведите последовательность номеров вершин в порядке посещения. Последовательность следует начинать с корня. Если существует несколько решений, выведите любое. Примеры:
Ограничение времени для 32-х битного компилятора: 1 секунда Ограничение времени для 16-и битного компилятора: 8 секунд Ограничение памяти: 64 мегабайта Входной файл: input.txt Выходной файл: output.txt Про компиляторы можно почитать здесь
Евгений Михалевский
24-03-2007 20:02 (ссылка)
Евгений Михалевский
25-03-2007 10:49 (ссылка)
Евгений Михалевский
25-03-2007 16:49 (ссылка)
|
||||||||||||||||||||||