[清华集训2016] 定向越野

一张坐标图,起点为 \((x_0,y_0)\) ,终点为 \((x_1,y_1)\) ,有 \(n\) 个圆,求从起点到终点的不穿过圆的最短距离。 \(n\leq 500\quad x_i,y_i\leq 1000\)

已知最终路径一定为若干条圆的公切线加上若干条弧组成。求出所有圆(将起点终点视为半径为0的圆)两两的切线以及不同切点间的距离,加边跑最短路即可。边共 \(n^2\) 级别条,点共 \(n^2\) 级别。复杂度 \(O(\) 可过 \()\)

posted @ 2021-05-07 19:21  Van-Helsing  阅读(70)  评论(0)    收藏  举报