10715: Кількість паросполучень


Відправити розв'язок

Бали: 100 (partial)
Time limit: 0.5s
Memory limit: 256M

Author:
Problem type
Allowed languages
Brain****, C++, Java, Pascal, Python, v8js

Є \(N\) хлопців та \(N\) дівчат.

Для кожної пари \(i,j\) задана табличка сумісності хлопця \(i\) та дівчини \(j\). Якщо \(Aij=1\) - хлопець \(i\) та дівчина \(j\) сумісні, а якщо \(Aij=0\) - не сумісні.

Для танцю на випускний вечір потрібно утворити \(N\) пар хлопець-дівчина (щоб кожен хлопець та кожна дівчина належали рівно до 1 пари, і в парі були лише сумісні учні).

Скількома способами можна вибрати \(N\) пар (відповідіть виведіть за модулем \(10^9+7\))

Формат вхідних даних

В першому рядку ціле число \(N\) (\(1 \le N \le 21\))
В наступних \(N\) рядках міститься \(N\) чисел - матриця сусмісності

Формат вихідних даних

Виведіть кількість способів за модулем \(10^9+7\)

Приклад вхідних даних-1

3
0 1 1
1 0 1
1 1 1

Приклад вихідних даних-1

3

Пояснення до прикладу-1

Існує 3 способа утворити пари на танець
(1,2),(2,1),(3,3)
(1,2),(2,3),(3,1)
(1,3),(2,1),(3,2)

Приклад вхідних даних-2

4
0 1 0 0
0 0 0 1
1 0 0 0
0 0 1 0

Приклад вихідних даних-2

1

Пояснення до прикладу-2

Існує 1 спосіб утворити пари на танець
(1,2),(2,4),(3,1),(4,3)

Приклад вхідних даних-3

1
0

Приклад вихідних даних-3

0

Приклад вхідних даних-4

21
0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 1 0 0 1
1 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 1 1 0
0 0 1 1 1 1 0 1 1 0 0 1 0 0 1 1 0 0 0 1 1
0 1 1 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 0
1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0
0 1 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 0 0 1
0 1 0 0 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0
0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1
0 0 1 0 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1
0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1
0 1 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1 0 1 1 0
0 0 1 0 0 1 1 1 1 0 1 1 0 1 1 1 0 0 0 0 1
0 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1
1 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 1 1 0 0 1
0 0 0 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1
1 0 1 1 0 1 0 1 0 0 1 0 0 1 1 0 1 0 1 1 0
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1
0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 1
0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0
1 1 0 1 1 0 0 1 1 0 1 1 0 1 1 1 1 1 0 1 0
1 0 0 1 1 0 1 1 1 1 1 0 1 0 1 1 0 0 0 0 0

Приклад вихідних даних-4

102515160

Коментарі

Ще немає коментарів.