EduBrick

E. Сколько обходов

2500 мс · 256 МБ · всё или ничего

Дан неориентированный граф. Посчитайте, сколькими способами можно обойти все вершины, побывав в каждой ровно один раз. Обход задаётся последовательностью вершин; обходы, отличающиеся направлением, считаются разными.

Та же динамика, что в предыдущей задаче, но вместо минимума — сумма.

d[mask][v]=∑u∈mask, u≠v, (u,v)∈Ed[mask∖{v}][u].d[\text{mask}][v] = \sum_{u \in \text{mask},\ u \ne v,\ (u,v) \in E} d[\text{mask} \setminus \{v\}][u].

Начальные значения: d[{v}][v]=1d[\{v\}][v] = 1 для каждой вершины — обход может начаться где угодно. Ответ — сумма d[full][v]d[\text{full}][v].

Формат ввода

В первой строке nn и mm (1≤n≤161 \le n \le 16, 0≤m≤n(n−1)20 \le m \le \frac{n(n-1)}{2}). В каждой из следующих mm строк — концы ребра. Рёбра различны, петель нет.

Формат вывода

Выведите количество обходов.

Примеры

ввод
1 0
вывод
1
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.