[POJ 3336]

ACM Underground

计算几何

题意:给出一个起点和终点坐标,以及最多100条线段和3000个黑点,问从起点出发是否能到达终点。移动过程中存在以下限制:只能沿线段移动,如果遇到交点,可以转移到另一条线段上。如果移动过程中遇到黑点:若黑点在交点处,则无法转移到其他线段;否则无法跨越黑点继续沿线段移动。

分析:数据范围很小,可以首先枚举出所有的点,并对每条线段计算出所有在其上的点,排序,对所有相邻可达点连边,最后从起点出发深搜即可。这里的关键在于,处理某条线上的点时,若在相同位置遇到了黑点和白点,那么需要在后续处理中忽略所有该位置上的点。每次仅当两个相邻点都为白点时才连边,这样可以确保仅能通过有效交点转移到其他线段,且不会越过在单一线段上的黑点。