Быстрая структура данных для поиска строгих подмножеств (из заданного списка)

У меня есть большой набор наборов, например {{2,4,5}, {4,5}, ...}. Учитывая одно из этих подмножеств, я хотел бы перебрать все другие подмножества, которые являются строгими подмножествами этого подмножества. То есть, если меня интересует набор A , например {2,4,5} , я хочу найти все наборы B , где относительное дополнение B / A = {}, пустое множество. Некоторые возможности могут быть {2,4} , {2,5} , но не {2,3}

Я, конечно, мог бы искать линейно и проверять каждый раз , но я ищу эффективную структуру данных как для большего набора, так и для подмножества (если это имеет значение). Количество подмножеств обычно составляет десятки тысяч, но если это имеет значение, меня будут интересовать случаи, когда они могут быть сотнями миллионов. Размер подмножеств обычно составляет 10 с.

Я программирую на C ++

Спасибо

18
задан PengOne 28 June 2011 в 20:03
поделиться