Лучший способ найти подмножество набора из группы наборов

Во-первых, извините за неоднозначное название.

Предположим, у меня есть следующая группа наборов:

Группа 1

s1 = ( x1, y1 )
s2 = ( x2 )

Группа 2

m1 = ( x1, y1, y2 )
m2 = ( x1 )
m3 = ( x1 , x2 )

Для каждого из наборов в Группа 1 - вызовите набор s , Мне нужно найти наборы в группе 2 - назовите ее m - такие, что m является подмножеством s .

Итак, для моего примера ответ будет:

s1 -> m2
s2 -> nothing

На данный момент я сохраняю значения в std: set , но я могу изменить это при необходимости. Кроме того, наборы могут становиться большими, поэтому алгоритм должен быть эффективным. На данный момент у меня есть подход грубой силы, который меня не совсем устраивает.

Есть предложения?

6
задан Aman Aggarwal 15 February 2012 в 19:18
поделиться