高考又来了,对于不认真读书的来讲真不是个好消息。为了小杨能在家里认真读书,他的亲戚决定驻扎在他的家里监督他学习,有爷爷奶奶、外公外婆、大舅、大嫂、阿姨…… 小杨实在是忍无可忍了,这种生活跟监狱有什么区别!为了他亲爱的小红,为了他的dota,他决定越狱! 假设小杨的家是个n*m 的矩阵,左下角坐标为(0,0),右上角坐标为(x1,y1)。小杨有n 个亲戚,驻扎在矩阵里(位置不同,且不在矩阵的边上)。小杨家里的每个地方都被亲戚监控着,而且只被距离最近的亲戚监控: 也就是说假设小杨所在的位置是(3,3),亲戚A 在(3,0),A 距离小杨距离是3;亲戚B 在(6,7),则B 距离小杨距离是5。距离A < 距离B,所以(3,3)位置由A 监控。 如果“最近距离”出现同时有几个亲戚,那么那个位置同时被那几个亲戚监控。 给出小杨的坐标(x0,y0)。因为被发现的人数越少,越狱成功的机会越大,所以小杨需要你设计一条越狱路线到达矩形的边上,且被发现的人数最少。 Ps:小杨做的方向是任意的,也就是说路线上的任意位置只需要是实数。 保证一开始小杨只被一个亲戚监控着。
显然,每个点与其他点连线的中垂线形成的半平面求交,就是这个点的监视范围。 然后最短路即可。
1.半平面交的流程 1)加入半平面以及四个特殊的边界半平面; 2)按半平面的极角排序,极角相同的半平面取较内侧的一个; 3)利用双端队列求出半平面交,头尾都要检查交点是否在新加入的半平面内; 注意:判断无解(队列中只剩一个半平面) 4)队列尾交点是否在头半平面中
新闻热点
疑难解答