1

Тема: Поиск радиуса графа.

Дан невзвешенный, неориентированный, связанный двудольный граф без кратных ребер.

Пусть D[x] - МАКСимальное из растояний от вершины х до всех остальных, тогда радиусом графа называется МИНимальное из всех D[x].

Требуется найти радиус графа. (кол-во вершин n < 10^4, кол-во ребер m < 10^5)
(Желательно быстрее чем за n^3)

Может быть кто нибудь расскажет алгоритм или скажет что это невозможно?
  Большое спасибо.

P.S так как граф невзвешанный, под растоянием я понимаю минимальное кол-во ребер которое необходимо посетить.

2

Re: Поиск радиуса графа.

Так он именно двудольный? То есть есть две доли, и рёбра только между ними?

3

Re: Поиск радиуса графа.

Подтверждаю. Граф двудольный. Ребра только между этими долями.
P.S хотя бы диаметр найти бы ^ ^

4

Re: Поиск радиуса графа.

Для начала, не очень точно дано определение диаметра графа
Диаметр графа — это максимум расстояния между вершинами для всех пар вершин. Расстояние между вершинами — наименьшее число ребер, которые необходимо пройти, чтобы добраться из одной вершины в другую.
Может это у вас диаметр,и можно ссылку на задачу откуда она взята?
Так же,вроде не существует пока что алгоритмов кроме самых быстрых лобовых(перебирая и с каждой вершины пуская алгоритм находа минимальных путей ),для двудольных думаю можно что нибудь откопать.

5

Re: Поиск радиуса графа.

Задачи как таковой нету, просто возник вопрос.

6

Re: Поиск радиуса графа.

Ээээ, ну так ограничения нужны точные, а так можешь просто написать
Пускаем с каждой вершины поиск в ширину за O(V+E) V - кол-во вершин,E - кол-во рёбер.
И вычисляем ответ,сложно O(V) * O(V+E) = O(V^2 + VE)

7

Re: Поиск радиуса графа.

Это да) спасибо.
P.S если кто-нибудь знает что-нибудь быстрее, отпишите пожалуйста)

8 Отредактировано KADR (2009-12-13 19:12:58)

Re: Поиск радиуса графа.

Babushkin пишет:

Задачи как таковой нету, просто возник вопрос.

Часом не этой задачи как таковой нету?)

9

Re: Поиск радиуса графа.

Забавно...но ты угадал) А "задачи как таковой нету" можно понимать как "я не уверен что существующая задача решается именно так".
и потом по fair play я не могу просто так дать сслыку на задачу и попросить решить)

10

Re: Поиск радиуса графа.

Ярослав smile Так а можно решить задачу про поиск диаметра графа быстрее чем в лобовую?*:D

11

Re: Поиск радиуса графа.

В общем случае думаю нет.

12

Re: Поиск радиуса графа.

можно решить не в лоб.
кстати, количество ребер 4 * 10^4

13

Re: Поиск радиуса графа.

(я про заливку :-P)

14

Re: Поиск радиуса графа.

Ну заливку то понятно что можно решить быстрее, иначе задачу бы не предлагали smile Правда мне почему-то кажется что не стоит ее обсуждать, т.к. олимпиада все-таки еще идет.

15

Re: Поиск радиуса графа.

+1)

16

Re: Поиск радиуса графа.

wink

17

Re: Поиск радиуса графа.

KADR пишет:

Ну заливку то понятно что можно решить быстрее, иначе задачу бы не предлагали smile Правда мне почему-то кажется что не стоит ее обсуждать, т.к. олимпиада все-таки еще идет.

Ну а теперь, когда олимпиада закончилась, не могли бы вы рассказать, как она решалась? Я написал квадрат, а если вершин много, то искать путь из рандомных, пока укладываемся во время. Ну это, конечно, не решение

18

Re: Поиск радиуса графа.

ну строим граф, "конденсируем его" и пускаем bfs из всех вершин.
но это дает ТЛ, поэтому пускаем bfs не из всех, а с каким-нибудь шагом.
можно еще отсортить вершины по кол-ву ребер и идти с середины : )

19

Re: Поиск радиуса графа.

Ну этож некрасиво, наверняка есть более хорошое решение ?

20

Re: Поиск радиуса графа.

А что сделать то надо? Откуда в теме про радиус,вообще заливка появилась? Не понимаю.

21

Re: Поиск радиуса графа.

Не стоит пока ее обсуждать, см. http://www.e-olimp.com/competitions/136 (задача O)

22

Re: Поиск радиуса графа.

Хм... Ну на эту задачу я попробовал написать заливку снаружи,то есть выбираю в какой цвет покрашу и начинаю это делать снаружи,так как слои окрашиваться будут именно так,и выбираю ответ минимальный..
Прошла с первого раза,сложность O(N * M).

23

Re: Поиск радиуса графа.

brainail пишет:

Хм... Ну на эту задачу я попробовал написать заливку снаружи,то есть выбираю в какой цвет покрашу и начинаю это делать снаружи,так как слои окрашиваться будут именно так,и выбираю ответ минимальный..
Прошла с первого раза,сложность O(N * M).

48460 brainail Заливка Вчера, 01:03 Засчитано 16.3%

Это эта сдача прошла с первого раза? А можно подробнее?

24 Отредактировано brainail (2010-02-09 11:58:56)

Re: Поиск радиуса графа.

Ой smile Простите! Сайт долбанный! smile Конечно это не правильное решение:D *ROFL*
Ну во первых вполне нормальное решение у "chum",строим граф и по графу уже бегаем.
Ну а когда у нас есть граф нам нужно найти радиус графа,а алгоритмов его нахождения не так много хороших как я думаю,один из них лоб,второй вот как "chum",с серединки где нибудь пускать...
А на эту тему думаю в инете можно почитать неплохо статеек и оптимизаций.