题解 P3945 【三体问题】

· · 题解

这个题其实就是一个物理题啊!对高中物理要求的还有点高。
(我这篇题解只讲物理的部分,代码不负责,逃)
题目说三体世界受到“歌者”影响时间的流动不是连续的(每0.01秒钟刷新一次),其实间接的告诉你这题用微元法:
在极小的时间内,位移还来不及变化,所以受力可以看作是恒力,在这段时间内按匀变速直线运动去处理。
不过题目说按0.01s去做其实是降低了难度的。就算是不告诉你变化不连续,也要用微元法这种思想。
这个题其实就是动力学很基础的一类题,主要的步骤就是受力分析然后运动学
受力分析就是将每个星体受到其他星体的万有引力进行合成。直接合成当然是不现实的,所以我们需要正交分解
首先祭出万有引力公式:

F=\frac {GMm} {R^2}

坐标系都建好了,正交分解相当于就是把这个力(因为是矢量所以可以分解)分解到x方向y方向z方向上。举个例子:
有两个星体,坐标为(x_1,y_1,z_1),(x_2,y_2,z_2)
令它们的距离为d,设万有引力的大小为F,对应的矢量设为\vec{F}=(x,y,z),令\vec{d}为二者的方向向量,则有\vec{F}=\lambda\vec{d}(两个向量共线)
(向量就是矢量)
由向量的基本运算,则有

x=\frac{F(x_2-x_1)}{d}$,$y=\frac{F(y_2-y_1)}{d}$,$z=\frac{F(z_2-z_1)}{d}

然后将力进行矢量相加(就是把x,y,z方向上的数值相加),得到合力的矢量,然后再用F=ma得到每个方向上的加速度(加速度也是矢量,也可以分解)。
接下来就是运动学了 又运动具有独立性,即每个方向上的运动互不干扰,所以可以将位移和速度分成三个方向上进行运算(位移和速度也是矢量,也可以分解)
(补几个运动学公式)
速度:v_t=v_0+at
位移:x=v_0t+\frac{1}{2}at^2
如果这些都知道了,那就是个模拟题了。