Bir WxH
ızgara göz önüne alındığında , kaç tane labirent var?
Labirent hakkında bildikleriniz:
- Izgara tam olarak
H
yüksek veW
geniş karelerdir. - Üç tür kare vardır: Başlat, Son ve Boş. Labirentinizde tam olarak 1 Başlangıç ve 1 Bitiş bulunmalı ve kalan tüm kareler Boş olmalıdır.
- Tüm labirenti çevreleyen duvarlar var.
- Duvarlar, aşağıdaki kuralı ihlal etmedikçe herhangi iki kare arasındaki kenarda bulunabilir:
- Başlangıç karesinden Bitiş karesine bir yol olmalıdır.
Bu nedenle, iki numara verilir, W
ve H
, mümkün kare / duvar konfigürasyonları sayısını temsil eden tek bir numara döndürmelidir. GarantilidirW*H > 1
Örneğin, 2x2
labirent 100
olası farklı konfigürasyonlara sahiptir.
Bu bir kod golf yani kısa cevap kazanır!
Boyut ve / veya çalışma süresinde herhangi bir kısıtlama var mı? Birisi sayımı verimli bir şekilde hesaplayabilen bir algoritma bulamazsa (ki bu zor görünüyor), çoğu çözümün üstel çalışma süresine sahip olmasını bekliyorum. Yani, orta ölçülerde bile patlayacaklar.
—
Reto Koradi
@RetoKoradi no, çalışma zamanı kısıtlaması yok. Kısıtlamaların sorunu imkansız hale getirip getirmeyeceğinden emin değilim.
—
Nathan Merrill