hdu 6812 Kindergarten Physics

题目链接

思路

两个质点仅受互相的万有引力,这是一个椭圆运动
选取质心为参考系
设两物体间距为d,质量分别为ma和mb
则物体到质心的距离为r = d / 2
物体b的受力为F=G M_A/ d2= G (M_A/4)/ r2
即物体B等同于受到一个固定于质心处的质量为M_A/4的物体的万有引力作用,我们知道,这种情况下,B做一个以这个固定为焦点的圆锥曲线运动,而在我们讨论的情况下,由于总机械能量小于0(无初速),因此是一个椭圆轨道,而且这个椭圆轨道是一个极扁的轨道,扁到了变成了直线运动,而质心所在既是椭圆轨道的焦点,也是轨道的近地点,因此轨道的半长轴为D/4,D为AB的初始距离。代入椭圆轨道行星公转周期公式:
T = 2 π ( a 3 / G M ) T=2 \pi \sqrt(a^3/GM) T=2π( a3/GM)
a为半长轴,M为中心恒星的质量
B从静止到A,是一个由远地点到近地点的过程

但是
允许最大误差是1e-6,
两物体的碰撞时间可以由上面进行推导
t = π ( ( D / 4 ) 3 / G ( M A / 4 ) ) = π / 4 ( D 3 / G M A ) t=\pi \sqrt((D/4)^3/G(M_A/4) )=\pi/4 \sqrt(D^3/G M_A) t=π( (D/4)3/G(MA/4))=π/4( D3/GMA)
带入两物体间距和MA质量即可得出两物体碰撞事件
在最坏情况下,两物体的移动距离也远小于1e-6
所以,直接输出两物体间距即可

碎碎念

一开始没注意样例已经给出了最坏情况,我们傻fufu地推了半天公式QwQ

代码

#include <bits/stdc++.h >

using namespace std;

int main() {
    int t;
    cin >> t;
    while (t--) {
        int a, b, d, t0;
        cin >> a >> b >> d >> t0;
        cout << d << endl;
    }
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值