HDU4793 思维、计算几何、直线和圆交点
题目
有一个圆(图中红色部分),其有一个初速度,撞到黑色部分会发生完全弹性碰撞,求红色圆在蓝色区域的时间。
题解
训练赛的题,队友给了一个关键转化,可以将蓝色、黑色圆的半径同时加上红色圆的半径,然后将红色圆缩成一个点。这样各种事件还是等价的。
转化之后就很简单了:
一、红色点不进入蓝色区域,答案为0
二、红色点进入蓝色区域但不进入黑色区域,答案为$$与蓝色区域两个交点的距离/速度$$
三、红色点进入黑色区域,可以证明的是,与黑色圆发生碰撞前后在蓝色区域的时间(路程)是一样的,求出一者乘二即可。
代码
1 |
|