Учитывая WxH
сетку, сколько возможных лабиринтов есть?
Что вы знаете о лабиринте:
- Сетка ровно
H
квадратная иW
квадратная. - Существует три типа квадратов: Start, Finish и Empty. Ваш лабиринт должен содержать ровно 1 начало и 1 конец, а все оставшиеся квадраты пусты.
- Есть стены, окружающие весь лабиринт.
- Стены могут существовать на границе между любыми двумя квадратами, если это не нарушает нижеследующее правило:
- Должен существовать путь от стартового квадрата до финишного квадрата.
Поэтому, учитывая два числа, W
и H
вы должны возвращать единственное число , представляющее собой количество возможных конфигураций площади / стена. Вам гарантировано, чтоW*H > 1
Например, 2x2
лабиринт имеет совершенно 100
разные возможные конфигурации.
Это код-гольф, поэтому выигрывает самый короткий ответ!
Есть ли ограничения по размеру и / или времени выполнения? Если кто-то не найдет алгоритм, который может эффективно рассчитать количество (что выглядит жестко), я ожидаю, что большинство решений будет иметь экспоненциальное время выполнения. Это означает, что они взорвутся даже при умеренных размерах.
—
Рето Коради
@RetoKoradi нет, никаких ограничений времени выполнения. Я не уверен, что ограничения сделают проблему невозможной или нет.
—
Натан Меррилл