2012-01-25 32 views
8

tüm olası kombinasyonu ile bir piramit baskı için bir algoritma elde ediniz öyle ki bir üs Örnek içinBaskı Piramit Bulmaca

olarak piramidin tepesinde ve en ağır ve en büyük kişiye en hafif ve en küçük kişi yalan:

Kişi bir 80kg 140 cm

Kişi B 90kg

150 cm

Kişi Cı 100kg 160 cm

Kişi D 100kg 170 cm

kişi E 150kg 180 cm

Kişi F 160kg 185 cm

A 
B C 
D E F 

Not: yükseklik ve kişi daha büyük ağırlığı Kişi bunun üzerine yatmak olamaz kişi Her insanın piramit yapısının bir parçası olması için mandotory değil

+0

piramit "tam" olarak gerekli mi daha inşa kadar yinelemeli tekrar nelerdir? yani bu durumda 1 kişi, 3 kişi veya 6 kişilik bir piramit? Ayrıca, B figürünüzde daha ağır veya daha uzun olabilir mi? –

+0

Piramidin dolu olması şart değildir. 3 kişi 6 kişilik piramit olabilir. (Ancak 1 kişi piramit mümkün değildir). –

+0

sadece yığın değil mi? – dfens

cevap

3

İşte bu zor bir fikir.

X > Y (her iki bileşen) ve örneğin böyle bir Z bu X > Z > Y varsa bir yönlendirilmiş kenar Y düğümü X gider bir şekilde bir grafik Construct

 /C \ 
F -> E  B -> A 
     \ D/

sonra yükseklik, bütün ağaçları oluşturmak 1 ve yinelemeli şöyle kalanını inşa:

Tümünü işaretle kullanılan düğümleri ağacı (başlangıçta sadece bir düğüm) içinde yalnızca grap kişileri kullanabiliriz Y Z başka 2 kişilik altında bir kişi X koyarak için h tüm permütasyon kullanım Y Z

altında ve hiçbir