eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Цирк

Цирк

n коров из цирка фермера Джона готовятся к своим грядущим выступлениям. Все действия происходят на дереве с вершинами, помеченными числами от 1 до n. "Начальное состояние" действия определяется числом k (1kn) и назначением коров 1 .. k вершинам дерева так, чтобы никакие две коровы не находились в одной вершине.

В акте коровы совершают сколь угодно большое количество "ходов". Во время движения одна корова перемещается из своей текущей вершины в незанятую соседнюю вершину. Два начальных состояния называются эквивалентными, если одно из них может быть достигнуто из другого некоторой последовательностью ходов.

Для каждого k (1kn) помогите коровам определить количество классов эквивалентности начальных состояний: то есть максимальное количество начальных состояний, которые они могут выбрать, чтобы не было двух эквивалентных. Поскольку эти числа могут быть очень большими, выведите их остатки по модулю 109 + 7.

Входные данные

Строка 1 содержит n (1n105).

Строка i (2in) содержит два целых числа ai и bi обозначающих ребро между ai и bi в дереве.

Выходные данные

Для каждого i (1in), в i - ой строке выведите ответ для k = i по модулю 109 + 7.

Пример 1

Для k = 1 и k = 2 любые два состояния могут быть преобразованы друг в друга. Теперь рассмотрим k = 3, и пусть ci обозначает местонахождение коровы i. Состояние (c1, c2, c3) = (1, 2, 3) эквивалентно состояниям ( 1, 2, 5) и (1, 3, 2). Однако не эквивалентно состоянию (2, 1, 3).

Лимит времени 1 секунда
Лимит использования памяти 128 MiB
Входные данные #1
5
1 2
2 3
3 4
3 5
Выходные данные #1
1
1
3
24
120
Входные данные #2
8
1 3
2 3
3 4
4 5
5 6
6 7
6 8
Выходные данные #2
1
1
1
6
30
180
5040
40320
Источник 2020 USACO US Open, Платина