У меня много кубоидов в трехмерном пространстве, у каждого есть начальная точка в (x, y, z) и размер (Lx, Ly, Lz). Интересно, как найти самый большой куб в этом трехмерном пространстве, который содержится в объединении кубоидов. Есть ли эффективный алгоритм для этого?
Например, если у меня есть следующие кубоиды:
- кубоид, начинающийся с (0,0,0) с размером (10,10,10),
- кубоид в (10,0,0) с размером (12,13,15),
- кубоид в (0,10,0) с размером (10,10,10),
- кубоид в (0,0,10) с размером (10,10,10), и
- кубоид в (10,10,10) с размером (9,9,9).
Тогда самый большой куб, содержащийся в объединении этих кубоидов, будет кубом, начинающимся с (0,0,0) с размером (19,19,19).
Более общая версия этого вопроса:
Учитывая набор из блоков в R d , найдите самый большой гиперкуб, содержащийся в объединении блоков.