HDU 5033 Building(单调栈, 类凸包)
2. 如上图所示,中间的紫色楼,对于第四座楼右侧的位置,计算角度时也是无关的。右侧位置的左仰角都在红线和黄线之间。
顶层模型:排序后,从左到右再从右到左,分两次得出每个查询点的左侧和右侧天空角度,相加即是答案。
通过画图分析,可以得出以下两点:
1. 如上图所示,在一座高楼左侧的矮楼,对于高楼右侧的任意位置,计算天空角度时都是无关的。
所以,这题可以用类似求凸包的方法,利用单调栈进行维护。计算左侧天空角度时,左左向右扫描,始终维护当前站立位置左侧得上凸包,因为不在凸包上的点(将楼房抽象为顶部代表的点),对
原创
2014-11-15 21:47:53 ·
809 阅读 ·
0 评论