У меня есть несколько наборов (около 100 или около того) чисел в диапазоне от 1 до 32, каждый из которых имеет не более 32 элементов.
Например:
[1,2]
[3,4]
[1,2,3]
Что я я пытаюсь сделать, это сделать алгоритм для вывода наибольшего объединения множеств, которые не имеют пересечений друг с другом.
Выход из примера [[1,2], [3,4]]
, где они не имеют любые пересечения друг с другом, и их объединение больше, чем множество [[1,2,3]]
.
Я пытался найти максимальное совпадение двудольного графа с наборами, сопоставленными с числами, но я сразу запутался , поскольку проблема заключается не в том, чтобы найти только одно совпадение, а в наборе нескольких чисел.
Кажется, что написание алгоритма полиномиальной сложности времени трудно, любые идеи не более 2 ^ n сложности времени будут быть оцененным.