Всем доброго времени суток,
Столкнулся с задачей , понял , что с данными ограничениями (К <= 18) можно перебором решить эту задачу, но вот заинтересовало одно: как решать эту задачу, при K > 32 ? Если есть идеи для решения этой задачи при К > 32, поделитесь, пожалуйста)
Благодарю.
Можно жадно убирать команды по количеству повторяющихся участников (начать с больших).
Ок. Понял свою ошибку. Всё идёт онлайн.
Да, точно, не подумал.
Если делать всё онлайн: выкинуть 123, потом заново посчитать пересечения и т.д., то я пока не умею контртест.
Строишь граф g[I][J] = {могут ли I и J соевноваться одновремено}. Дальше ищешь максимальный полный подграф вот так. Для K <= 50 должно хватить.
Не очень понятно, как полный подграф связан с задачей?
Вершины графа — команды. Вершины соединены, если команды не пересекаются по участникам. Ещешь наибольший набор команд, которые могут друг с другом соревноваться?
Да, похоже на то. Я подумал, что вершины — участники.
Разве нахождение полного подграфа не O(2^n)?
Там какая-то магия, которая сверху оценивается как 2^n, но работает быстрее.
Обычный "meet in the middle".
UPD: по ссылке выше комментарий, где Ваня Смирнов объясняет тоже самое только подробнее и по-английски.
Вам же ссылку скинули... там другая сложность.
Благодарю всех , за помощь!