Все четыре задачи в общем случае имеют экспоненциальную сложность. Решение с ветвлением и отсечениями не меняет худшую асимптотику, но позволяет не посещать значительную часть дерева перебора.
Для каждой вершины хранится битовая маска её соседей. Ещё одна маска описывает
вершины, которые остаются доступными в текущем состоянии. Пересечение множеств
становится побитовым AND, удаление — AND с инвертированной маской, а размер
множества вычисляется подсчётом установленных битов.