З урахуванням WxH
сітки, скільки можливих лабіринтів?
Що ви знаєте про лабіринт:
- Сітка точно
H
рівних квадратів, аW
квадрати шириною. - Існує три типи квадратів: Початок, Завершення та Порожній. Ваш лабіринт повинен містити рівно 1 Початок і 1 Фініш, а всі залишилися квадрати порожні.
- Є стіни, що оточують весь лабіринт.
- Стіни можуть існувати на краю між будь-якими двома квадратами, якщо це не порушує наведене нижче правило:
- Має існувати шлях від Стартової площі до площі Фінішу.
Тому, задавши два числа, W
і H
ви повинні повернути одне число, що представляє кількість можливих конфігурацій квадрат / стіна. Вам це гарантованоW*H > 1
Наприклад, 2x2
лабіринт має абсолютно 100
різні можливі конфігурації.
Це кодовий гольф, тому найкоротша відповідь виграє!
Чи є обмеження щодо розміру та / або часу виконання? Якщо хтось не знайде алгоритм, який зможе ефективно підрахувати підрахунок (який виглядає важко), я сподіваюся, що більшість рішень матимуть експоненціальний час виконання. Це означає, що вони будуть вибухати навіть при помірних розмірах.
—
Рето Коради
@RetoKoradi немає, обмежень для виконання немає. Я не впевнений, чи обмеження можуть зробити проблему неможливою чи ні.
—
Натан Меррілл