С Новым годом! Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 13.11.2016
Сообщений: 2
1

Разбить граф на два полных

26.03.2018, 23:29. Показов 4065. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Требуется разбить неориентированный граф на два полных графа, то есть чтобы в результате получилось 2 графа, каждая вершина которого смежна с любой другой вершиной это графа. Ничего не приходит в голову, кроме как прямой перебор в лоб, но нужен алгоритм по-оптимальней. Подскажите, пожалуйста, в каком направлении копать.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.03.2018, 23:29
Ответы с готовыми решениями:

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

Разбить граф на уровни
Есть такое задание: упорядочить вершины графа – провести разбиение множества вершин графа на...

Разбить граф на две компоненты связности
Имеем граф, рёбра которого имеют вес. Необходимо убрать определённое количество рёбер так, что бы...

Разбить неориентированный граф на максимальное число треугольников
Разбить неориентированный граф на максимальное число треугольников, подскажите как это делается

5
Модератор
Эксперт функциональных языков программирования
3077 / 2226 / 462
Регистрация: 26.03.2015
Сообщений: 8,630
27.03.2018, 10:46 2
Цитата Сообщение от boyar Посмотреть сообщение
Требуется разбить неориентированный граф на два полных графа, то есть чтобы в результате получилось 2 графа, каждая вершина которого смежна с любой другой вершиной это графа.
Кто-то гарантирует, что такое разбиение существует?
0
0 / 0 / 0
Регистрация: 13.11.2016
Сообщений: 2
27.03.2018, 12:33  [ТС] 3
Цитата Сообщение от Shamil1 Посмотреть сообщение
Кто-то гарантирует, что такое разбиение существует?
Пардон, задание не до конца озвучил.

... либо вывести сообщение о том, что такое разбиение невозможно.
0
194 / 174 / 30
Регистрация: 10.07.2012
Сообщений: 800
30.03.2018, 11:30 4
что-то вы, наверное, еще не досказали. если речь именно о разбиении на две части, каждая из которых - полный подграф, то исходный граф должен представлять собой две компоненты связности, и, соответственно, разбиение однозначно.
0
Модератор
Эксперт функциональных языков программирования
3077 / 2226 / 462
Регистрация: 26.03.2015
Сообщений: 8,630
30.03.2018, 11:51 5
Цитата Сообщение от salam Посмотреть сообщение
что-то вы, наверное, еще не досказали. если речь именно о разбиении на две части, каждая из которых - полный подграф, то исходный граф должен представлять собой две компоненты связности, и, соответственно, разбиение однозначно.
Видимо, операция "разбить" подразумевает удаление "лишних" рёбер. Например, полный граф всегда можно разбить на два полных подграфа, так как любой подграф будет полным.
0
0 / 0 / 0
Регистрация: 25.10.2017
Сообщений: 16
20.05.2018, 11:27 6
Была похожая задача в контексте Яндекса, там в графе с n вершинами нужно было проверить можно ли его разбить на два полных подграф без общих вершин, используя при этом все вершины начального. Я написал что-то такое. Создаём два множества, ищем две точки у которых нет ребра, то есть они в разных подграфах и пушим в эти два множества(это будущие полные подграфы). Затем для каждой точки графа смотрим можем ли мы ее докинуть в какое-то множество, то есть нам надо проверить содержится ли одно множетсво в множестве инцедентных вершин этой точки(тип для полного графа все дела тыр пыр). Если точку можно докинуть в два графа одновременно, то закинем ее в какую-то очередь например, пока мы не рассмотрим все простые точки вот. Ок, все точки рассмлтрены, выфигачиваем точку из очереди и если она все ещё добавляема в два графа то кидаем ее в эти два графа, когда появляется точка которая протеворечит данной точке (которая лежит в двух множествах) то мы просто выпиливаем протеворечивую точки из множества, в которую мы не можем запихнуть текущую точку и спокойно ее туда пихаем. Собственно вроде все. А ну да, если протеворечивая точка не содержится в двух множествах одновременно, то все, гг.
Это все что я смог придумать на контексте, я закодил, но поймал TL на 5 тесте. Я конечно реализовывал коряво, а времени не оставалось, просто я хз как по другому(если мой вариант конечно правильный)
Могу кинуть код потом
0
20.05.2018, 11:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2018, 11:27
Помогаю со студенческими работами здесь

Определить сколько полных часов и полных минут прошло к данному моменту
Идет k-ая секунда суток. Определить сколько полных часов и полных минут прошло к этому моменту.

Определить, сколько полных часов (h) и полных минут (m) прошло к заданному моменту
Идет k-я секунда суток. Определить, сколько полных часов (h) и полных минут (m) прошло к этому...

Найти кол-во полных минут и полных часов, прошедших с начала суток
с начала суток прошло n секунд (n - целое). Найти кол-во полных минут и полных часов, прошедших с...

Определить, сколько полных метров и полных сантиметров составляет высота дерева.
Здравствуйте, решите, пожалуйста, задачу. Высота дерева k миллиметров. Определить, сколько полных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru