几何问题中需要特别注意处理边界情况和避免分类讨论时产生疏漏。具有代表性的边界情况有:
(1)两直线平行、三点共线或除零的情况。
(2)将所有点排序后处理时,弄错了对相同x坐标或y坐标的点的处理顺序。
(3)判断直线和多边形是否相交时,漏掉了直线恰好通过多边形顶点的情况。
(4)判断两个实心物体是否相交时,忘记了其中一个完全在另一个内部的情况。
(5)在物体移动的模拟类问题中,将初始相接触但随后分离的情况误判为碰撞。
此外,求解几何问题时往往会用到浮点数,因而要多注意一下误差问题。由于以整数形式输人的情况很常见,所以如果可能的话,尽量保持整数形式处理也是一种办法。
比如
- 求相同的中点数目时,与其(x+y)/2.0变成浮点数,不如直接存储(x+y)
- 计算几何用哈希存点不可取,尽量存到数组里,用hash用一次T一次。