Задача Разбиения

Файл входного файла: partitions.in
Файл выходного файла: partitions.out
Ограничение по памяти: 64 MB
Ограничение по времени: 2 s

Описание

Разбиением множества S = {1,2,..., n } называется набор P множеств P = { P 1 , P 2 , ..., P k }, такой что U P i = S и P i ∩ P j = ∅ для i != j. Примером разбиения для n = 5 может служить P 1 = {1,3}, P 2 = {2,4,5}.

Говорят, что разбиение избегает множество Q если ни одно из множеств P i не содержит Q в качестве подмножества. Например, разбиение, приведенное выше, избегает множеств {1,2} и {3,4}, но не избегает, например, множеств {1,3} и {2}.

По заданному n и набору множеств Q 1 , Q 2 ,..., Q l найдите количество разбиений, которые избегают каждое из множеств Q i .

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

Первая строка входного файла содержит два целых числа n и l (1 <= n <= 100, 0 <= l <= 10). Следующие l строк описывают множества, которые следует избегать. Каждая строка начинается с целого числа q i - размера множества, за которым следует q i чисел - элементы множеств Q i .

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

Выведите одно целое число - количество разбиений, которые избегают каждого из множеств Q i .

Примеры:

ввод вывод

5 2
3 1 2 3
2 2 4

34

Added: admin
Difficulty: 1.9956338687
Accepted: 1
Submitted: 6
Источник задачи: neerc school 2008 october 4 advanced
Analyze this Discuss

Обсуждение:

Начать обсуждение:

Powered by django, eJudge.