我有一个长方体的列表,它们的左下角和右上角的坐标定义为平行于轴的边。坐标是双重值。这些长方体密集排列,与一个或多个其他部分重叠,甚至完全包含其他部分。如何计算多个重叠的长方体的总体积
我需要计算所有给定长方体所包含的总体积。重叠的区域(甚至多次)应该只计算一次。
例如,卷:
- ((0,0,0)(3,3,3))
- ((0,1,0)(2,2,4) )
- ((1,0,1)(2,5,2))
- ((6,6,6-)(8,8,8))
的总体积为27 + 1 + 2 + 8 = 38. 有没有简单的方法来做到这一点(在O(n^3)时间或更好?)?
n^3我猜是不够的。 – Trasvi
尝试一种分而治之的方法。根据它们所属的垂直线的哪一侧将长方体列表分为两组,并将与该线相交的那些长方体分成两部分。这可能会导致运行时间看起来像T(n)= 2T(n/2)+ cn。 – krjampani
@krjampani:按行我想你的意思是飞机 –