Совершенные паросочетания
2500 мс · 256 МБ · всё или ничего
Дан двудольный граф: работников и работ, известно, кто какую работу умеет делать. Посчитайте, сколькими способами можно раздать работы так, чтобы каждый получил ровно одну и умел её делать. Ответ по модулю .
Это перманент матрицы из нулей и единиц — величина, для которой полиномиального алгоритма не известно. При считается динамикой по маскам.
Формат ввода
В первой строке (). В каждой из следующих строк — символов: 1, если -й работник умеет делать -ю работу, и 0 иначе.
Формат вывода
Выведите количество способов по модулю .
Примеры
ввод
1 1
вывод
1
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.