如果不超车,就是 $d/v$ 的时间。
如果超车,可以二分答案 $t$。以第二辆车为参考系,那么相当于从 $(0,0)$ 开始,要走到 $(d-vt,0)$ 且不经过圆心为 $(2r,0)$,半径为 $2r$ 的圆,判断能不能在 $t$ 秒内走完。如果 $d-vt < 4r$ 显然不行。
在这个坐标系中我们的速度 $(x,y)$ 的限制变成了 $(x+v)^2+y^2\le 4v^2$,但是可以证明在这个坐标系中两点之间仍然是走线段最快,所以我们会先沿着圆周走一段然后沿着切线走到终点。假设我们走的角度为 $\theta$ 时速度的大小为 $v(\theta)$,切线和 $x$ 轴之间的角度为 $\phi$,那么走到切点的时间就是 $\int_0^\phi 2r d\theta/v(\theta)$。角度为 $\theta$ 时速度应当平行于 $(\sin\theta,\cos\theta)$,可以解得 $v(\theta)=v\cdot (\sqrt{\sin^2\theta+3}-\sin\theta)$。这个积分没有解析解,但是可以用自适应辛普森积分计算。事实上积分的封闭形式中含有一个椭圆积分,所以也可以直接用标准库中的函数计算。