
使用C++编写的分治法解决天际线问题的程序。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
给定n座建筑物B[1,2,...,n],每座建筑物B[i]被描述为一个矩形,并用三元组B[i] = (ai, bi, hi) 表示,其中ai代表建筑物的左下顶点,bi代表建筑物的右下顶点,hi则表示建筑物的海拔高度。因此,需要设计一个时间复杂度为O(nlogn)的算法,以确定这n座建筑物所构成的天际轮廓。例如,如图所示的8座建筑的表示分别为(1,5,11),(2,7,6),(3,9,13),(12,16,7),(14,25,3),(19,22,18),(23,29,13)和(24,28,4),其对应的天际轮廓如右图所示,可由9个高度的变化量(1,11),(3,13),(9,0),(12,7),(16,3),(19,18),(22,3),(23,13)和(29,0)来表示。 此外,考虑一个简单的例子:如果只有一个建筑物(1,5,11),则其天际轮廓的输出应为两个高度的变化量(1, 11), (5 ,0)。
全部评论 (0)
还没有任何评论哟~


