题面:
题意:
给定真空中的两个小球。初始时静止,只受万有引力的作用。
问在 t 时刻,两小球的距离。数据保证,t 时刻之前两小球不会相撞。
题解:
观察数据,精度要求
1
e
−
6
1e^{-6}
1e−6。
我们各项值都取最优值。
g
=
1
e
−
11
,
a
=
g
∗
m
/
d
2
=
1
e
−
11
∗
1
e
2
/
(
1
e
3
)
2
=
1
e
−
15
,
x
=
1
2
a
t
2
=
1
e
−
15
∗
1
e
4
∗
1
e
−
3
=
1
e
−
14
k
m
g=1e^{-11},a=g*m/d^2=1e^{-11}*1e^2/(1e^3)^2=1e^{-15},x=\frac{1}{2}at^2=1e^{-15}*1e4*1e^{-3}=1e^{-14}km
g=1e−11,a=g∗m/d2=1e−11∗1e2/(1e3)2=1e−15,x=21at2=1e−15∗1e4∗1e−3=1e−14km
所以就算都取最优值,相向位移 x 的数量级也远小于给定的 d 的数量级。
直接输出 d 即可。
代码:
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<string>
#include<queue>
#include<bitset>
#include<map>
#include<unordered_map>
#include<set>
#include<list>
#include<ctime>
#define ui unsigned int
#define ll long long
#define llu unsigned ll
#define ld long double
#define pr make_pair
#define pb push_back
#define lc (cnt<<1)
#define rc (cnt<<1|1)
#define len(x) (t[(x)].r-t[(x)].l+1)
#define tmid ((l+r)>>1)
#define max(x,y) ((x)>(y)?(x):(y))
#define min(x,y) ((x)>(y)?(y):(x))
using namespace std;
const int inf=0x3f3f3f3f;
const ll lnf=0x3f3f3f3f3f3f3f3f;
const double dnf=1e18;
const int mod=1e9+7;
const double eps=1e-1;
const double pi=acos(-1.0);
const int hp=13331;
const int maxn=200100;
const int maxp=400100;
const int maxm=600100;
const int up=200000;
int main(void)
{
int tt;
scanf("%d",&tt);
while(tt--)
{
int a,b,d,t0;
cin>>a>>b>>d>>t0;
cout<<d<<endl;
}
return 0;
}