Link
Solution
模拟即可 写了一上午还好意思这么说
在外层循环枚举点对,转化成求点在整个过程中的最近距离。
可以根据粒子撞壁把整个过程划分成个阶段。
假设一个时刻,撞了壁,转向,正在去撞壁的路上。
用它们的速度算出来谁会先撞壁,求出来时间。在时间内,两个点的轨迹都是一个直线,所以可以用二次函数求出在这一端时间内两点距离的最小值。
如果用直线的一般式方程,化出的式子比较麻烦。而用直线的点法式方程,可以很简单地求出最值。
=
撞壁的时候需要计算转向,画个图感受感受就会了。。

Tips
没错,OI题也可以用二次函数求最值。 细节很多。。难写。。
Code
1 | //Code by Lucida |