牛客寒假算法基础集训营4-D.雪色光晕

标签:计算几何

思路
本题实际上就是求点到线段的最短距离,注意是点到线段的最短距离,所以可能有三种情况,设线段为ab,点为p点,过点p向ab所在直线做垂线,若垂足落在线段上,最短距离就是垂线的长;若垂足落在线段外且靠近a点,最短距离就是线段ap的长;若垂足落在线段外且靠近b点,最短距离就是线段bp的长。 这里我采用的判断方法是向量点乘,即表示出四个向量ab,ap,ba,bp(注意向量点乘时两个向量需要同起点)的坐标,若向量点乘结果小于0,说明其夹角为钝角,对应的就是落在线段外的情况,反之答案就是垂线长。 然后最短距离的求法是平面解析几何中学到过的,对于点p(x0,y0),直线Ax+By+C=0,dis=|Ax0+By0+C|/sqrt(A2+B2),求的时候实际只需要A和C,即斜率和截距,具体看代码
代码实现
要注意的是本题最后答案long long应该存不下,直接用double即可 代码如下:
#

牛客寒假算法基础集训营4-D.雪色光晕最先出现在Python成神之路

版权声明:
作者:Alex
链接:https://www.techfm.club/p/18087.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>