- Описание
- Отправленные решения
34. Создать циклы (2.0)
Вам дана схема метро, состоящая из и двусторонних туннелей между парами станций. Гарантируется, что по заданным туннелям можно добраться от любой станции до любой другой. Кольцевой веткой называется последовательность различных туннелей, по которой можно проехать от станции до нее самой же с посещением других станций, не оказываясь на одной и той же станции дважды.
Вы хотите построить теперь некоторое количество туннелей между станциями, чтобы появилось ровно столько же новых кольцевых веток, сколько вы построили туннелей. Вы можете строить новый туннель между станциями, которые были соединены ранее. Вы не можете добавлять новый туннель из какой-то станции в неё же. При этом, появляется дополнительное условие: вы хотите, чтобы в итоговой схеме метро каждый туннель принадлежал хотя бы одной кольцевой ветке(необязательно новой). Посчитайте количество способов построить новые туннели. Так как ответ может быть большим, выведите его по модулю .
Формат ввода
В первой строке вводятся два числа ,
В следующих строках вводится пара чисел , () номера станций, которые соединяет -й туннель.
Гарантируется, что никакой туннель не соединяет станцию саму с собой и для каждой пары станций есть не более чем один туннель, их соединяющий.
Формат вывода
Выведите одно число остаток от деления количества способов построить новые туннели так, чтобы выполнялись все условия, на число .
Ограничения
Ограничение времени
2 с
Ограничение памяти
256 МБ
Пример 1
3 3
1 2
2 3
3 1
1
Пример 2
4 3
1 2
2 3
2 4
4