0 / 0 / 0
Регистрация: 13.11.2016
Сообщений: 2
|
|
1 | |
Разбить граф на два полных26.03.2018, 23:29. Показов 4065. Ответов 5
Метки нет (Все метки)
Требуется разбить неориентированный граф на два полных графа, то есть чтобы в результате получилось 2 графа, каждая вершина которого смежна с любой другой вершиной это графа. Ничего не приходит в голову, кроме как прямой перебор в лоб, но нужен алгоритм по-оптимальней. Подскажите, пожалуйста, в каком направлении копать.
0
|
26.03.2018, 23:29 | |
Ответы с готовыми решениями:
5
Какой из полных графов путем удаления ребер невозможно превратить в однородный граф? Разбить граф на уровни Разбить граф на две компоненты связности Разбить неориентированный граф на максимальное число треугольников |
Модератор
3077 / 2226 / 462
Регистрация: 26.03.2015
Сообщений: 8,630
|
|
27.03.2018, 10:46 | 2 |
0
|
0 / 0 / 0
Регистрация: 13.11.2016
Сообщений: 2
|
|
27.03.2018, 12:33 [ТС] | 3 |
Пардон, задание не до конца озвучил.
... либо вывести сообщение о том, что такое разбиение невозможно.
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 |
Видимо, операция "разбить" подразумевает удаление "лишних" рёбер. Например, полный граф всегда можно разбить на два полных подграфа, так как любой подграф будет полным.
0
|
0 / 0 / 0
Регистрация: 25.10.2017
Сообщений: 16
|
|
20.05.2018, 11:27 | 6 |
Была похожая задача в контексте Яндекса, там в графе с n вершинами нужно было проверить можно ли его разбить на два полных подграф без общих вершин, используя при этом все вершины начального. Я написал что-то такое. Создаём два множества, ищем две точки у которых нет ребра, то есть они в разных подграфах и пушим в эти два множества(это будущие полные подграфы). Затем для каждой точки графа смотрим можем ли мы ее докинуть в какое-то множество, то есть нам надо проверить содержится ли одно множетсво в множестве инцедентных вершин этой точки(тип для полного графа все дела тыр пыр). Если точку можно докинуть в два графа одновременно, то закинем ее в какую-то очередь например, пока мы не рассмотрим все простые точки вот. Ок, все точки рассмлтрены, выфигачиваем точку из очереди и если она все ещё добавляема в два графа то кидаем ее в эти два графа, когда появляется точка которая протеворечит данной точке (которая лежит в двух множествах) то мы просто выпиливаем протеворечивую точки из множества, в которую мы не можем запихнуть текущую точку и спокойно ее туда пихаем. Собственно вроде все. А ну да, если протеворечивая точка не содержится в двух множествах одновременно, то все, гг.
Это все что я смог придумать на контексте, я закодил, но поймал TL на 5 тесте. Я конечно реализовывал коряво, а времени не оставалось, просто я хз как по другому(если мой вариант конечно правильный) Могу кинуть код потом
0
|
20.05.2018, 11:27 | |
20.05.2018, 11:27 | |
Помогаю со студенческими работами здесь
6
Определить сколько полных часов и полных минут прошло к данному моменту Определить, сколько полных часов (h) и полных минут (m) прошло к заданному моменту Найти кол-во полных минут и полных часов, прошедших с начала суток Определить, сколько полных метров и полных сантиметров составляет высота дерева. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |