Logo xushuoxin的博客

博客

#412 题解

2023-03-25 21:43:52 By xushuoxin

前话:这题也太坑了吧,点在圆的边缘上也算穿过?

这题其实并不难,算法标签写的是图论,个人觉得是模拟

结构体保存圆中心的坐标与半径.

遍历每个圆,得出圆中心到曲线起点的距离与圆中心到曲线终点的距离.(注意使用欧几里得距离算法)

判断三种情况,一种是曲线从外往里经过(终点在圈内),一种是从里往外经过(起点在圈内),还有一种就是绕过这个圈(起点终点都不在圈内,或者都在圈内,都在圈外虽然也可以穿过,但是我们要求的是这条曲线最少要穿过的圆的个数).

现在,之前得出的起点(终点)到圆中心的距离就派上用场了,如果距离超过(或等于)圆的半径,就在圈外,否则在圈内.

最后,如果这个圆属于之前三种情况的前两种,这条曲线就要多穿过一个圆.

结束,剩下程序自己做吧.

小提示:

欧几里得算法求距离
sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))

评论

暂无评论

发表评论

可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。