2012-01-25 7 views
8

Wyprowadź algorytm drukowania piramidę ze wszystkich możliwych kombinacji takie, że najlżejszy i najmniejszy człowiek leżą na wierzchu piramidy i najcięższych i największych osobę jako podstawaDruk Pyramid logiczne

na przykład:

osoby A 80 kg 140 cm

osoba B 90 kg 150 cm

Osoba C 100kg 160 cm

osób D 100 kg 170 cm

osoby E 150kg 180 cms

Osoba F 160 kg 185 cm

A 
B C 
D E F 

Uwaga: Osoba o wysokości i ciężaru większego niż inne osoby nie może leżeć na wierzchu, że osoba To nie jest mandat dla każdej osoby, aby być częścią struktury piramidy

+0

Czy piramidy muszą być „pełna”? tj. w tym przypadku piramidę 1, 3 lub 6 osobową? Poza tym Can może być cięższy lub wyższy od F na twojej figurze? –

+0

Nie jest konieczne, aby piramida była pełna. może to być 3-osobowa 6-osobowa piramida. (Piramida 1 osoby nie jest jednak możliwa). –

+0

to nie tylko sterty? – dfens

Odpowiedz

3

Oto przybliżony pomysł.

Sporządzić wykres w taki sposób, że skierowana krawędź przechodzi z węzła X do Y, jeśli X > Y (obu) i nie ma takiego Z że X > Z > Y, dla przykładu

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

Następnie skonstruować wszystkie drzewa o Hight 1 i rekurencyjnie skonstruować resztę tak:

Mark używane węzłów w drzewie (początkowo tylko jeden węzeł) przez umieszczenie osoby X pod kolejne 2 osoby Y Z można korzystać tylko osoby, które w grap h są podY Z

wykorzystanie wszystkich permutacji i rekurencyjnie powtarzać aż można zbudować nie więcej