hdu2020 round4 Kindergarten Physics

阅读: 评论:0

hdu2020 round4 Kindergarten Physics

hdu2020 round4 Kindergarten Physics

问题描述

张三参加了不朽物理奥林匹克运动会。比赛的第0个问题如下。

有两个球分别重一公斤和二公斤。在这个问题中,它们可以被看作是粒子,因为它们足够小。在一开始(即t=0),两个球之间的距离为d km,并且两个球都不移动。

假设在这个系统中只有引力起作用(不考虑其他物体或其他力)。两个球从t=0开始移动。你的任务是当t=t0(s)时计算它们之间的距离。

帮张三解决问题!

以下信息可能有助于解决问题。

-万有引力公式:F=G⋅m1⋅m2/r2

-重力常数:G=6.67430×10−11m3/(kg⋅s2)

输入

输入的第一行给出测试用例数T(1≤T≤100)。T测试用例如下。

对于每个测试用例,唯一的一行包含四个整数a,b,d,t0(1≤a,b,d,t0≤100),表示两个球的质量,它们之间的初始距离,以及球移动的时间。

保证两个球在(t0+1)秒内不会相撞。

输出

对于每个测试用例,用实数x打印一条线,表示距离是x km。

你的答案的绝对或相对误差应不超过10-6。

思路

刚看到题觉得物理题公式推一下就好了。最后推出一个一元三次方程,在我还在思考怎么解时,队友说过了。t0<=100,位移小,加速度变化忽略,当匀加速就行了。直接r=d-a1t0 ^ 2/2-a2t0 ^2/2.稍稍怀疑了下人生,阿巴阿巴。
代码:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=55;
const int
inf=0x3f3f3f3f;
const int
mod=1e9+7;
const double
G=6.6743;
inline int
rd(){
register int s=0,w=1;
register char ch=getchar();   
while(ch<'0'||ch>'9'){
if(ch=='-') w=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9')
{
s=s*10+ch-'0';       
ch=getchar();   
}   
return s*w;
}
int main() {   
int t;t=rd();   
while(t--)   
{double a,b,d,t;a=rd(),b=rd(),d=rd(),t=rd();       
double x=d*1000;
x=x*x;
double s=(G*0.5*t*t*(a+b)/x)/100000000000;//printf("%.20fn",s);
//d=d-s;
printf("%.20fn",d-s);
}   
return 0;
}

本文发布于:2024-01-30 06:26:11,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170656717519871.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:Physics   Kindergarten
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23