No wez, najglupszy algorytm : )
Skoro obiekty nie moga sie obracac, to po prostu tworzymy wariacje bez powtorzen kazdy element obok kazdego (kazde dolozenie klocka tez jest rozgalezieniem drzewa, bo mozemy dokladac w dol, w bok albo jeszcze jakos inaczej) i majac pola obwodow mozemy sobie policzyc niewykorzystane miejsce. Optymalnie by było wcześniej pogrupować te elementy tak, by na przykład tworzyły duży kwadrat albo prostokąt o mniejszym wymiarze obszaru roboczego (tylko, ze w wersji optymalnej nie zawsze mozemy uzyskac najlepszy rezultat

).
A właśnie, zachłanne pakowanie. Umieszczasz elementy kolejno od największego do najmiejszego. Jeśli dany elelemt z koleji nie mieści się w żaden pusty obszar pomiędzy już włożonymi elementami, to dołóż go na koniec obszaru elementów.