[POJ 2540]

Hotter Colder

半平面交

题意:在大小为10*10的矩形内有一个“最热点”,矩形内离最热点越远越冷。初始位置(0,0),移动50次,每次给出移动的目标位置以及相对之前位置的温度变化情况。对于每次移动,需要计算可能存在最热点的区域面积。

分析:初始整个矩形都是可行的,每次移动结果若是“Hotter”或者“Colder”,相当于将之前的可行区域进行了切分;若是“Same”则可行区域变为线段,面积恒为0。每次切分可以用半平面来表示。求面积时,由于题目数据量很小,依然可以O(n^3)地处理。具体做法是,求出每两条直线间的交点(包括初始矩形对应的4条边线),然后用各半平面方程判可行,得到的可行点便是可行区域的边界点。接下来,取它们的中心,再按极坐标排序,依次求中心与每两相邻点围成三角形的面积,最后求和即可。干净利落的1A解决。