Как решить проблему веревочного моста с помощью алгоритма? - PullRequest
5 голосов
/ 23 апреля 2010

Мне было интересно, можно ли решить эту проблему канатного моста с помощью поиска по графическому алгоритму:

Мое чувство кишки говорит о DFS, но как мне определить состояния? (Это если DFS - даже путь.)

Веревочный мост

Ответы [ 2 ]

2 голосов
/ 23 апреля 2010

Эта задача должна решаться без компьютера.

Однако, если вы обобщите случай, то, я думаю, вы можете сделать это с помощью поиска по графику, но вы должны взять размерграфика на счет .Если каждая вершина является «состоянием», то число этих состояний оценивается как 2 N ⋅L, где N - количество людей, а L - длина фонарика.Каждое состояние содержит информацию, на какой стороне находится каждый человек, и оставшейся длительности фонарика.Если есть путь из начального состояния в одно из тех состояний, где все находятся на стороне лагеря, то этот путь является решением.

Это наиболее очевидный способ создания состояний, но, возможно, вы можете сделать это болееэффективный способ (текущее число состояний, следовательно, время выполнения, экспоненциально по отношению к входному размеру).

Однако для размеров, меньших, как в предоставленном вами примере, экспоненциальное время выполнения (с графиками) приемлемо.Интервьюеру может даже понравится, если вы предложите программное решение вместо того, чтобы делать это вручную.

0 голосов
/ 23 апреля 2010

Возможно, вы захотите посмотреть EWD 1255 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...