题目传送门(内部题144)


输入格式

  从$physics.in$读入数据。
  第一行一个数$T$,代表有$T$组数据。接下来$T$行每行$4$个浮点数,分别为$\theta,v,d,g$,保留到小数点后两位。


输出格式

  输出答案到$physics.out$。
  共$T$行,每行一个浮点数表示猫离起点的距离,四舍五入到$5$位小数。


样例

样例输入:

3
45 10 0.5 10
3.44 2.35 0.77 1.76
2.33 2.33 0.78 9.8

样例输出:

13.33333
0.92330
0.11493


数据范围与提示

样例解释:

对于第一个样例,如图所示,最终猫会停留在$(\frac{40}{3},0)$,距离原点距离约为$13.33333$。
物理大佬请无视下面这句话......
提示:对于垂直速度为$v$的物体将在飞行$\frac{v}{g}$的时间后到达最高点,速度分解使用平行四边形定则。

数据范围:

$subtask1:50pts,d=0$。
$subtask2:50pts,0\leqslant v\leqslant 1,000,0<g\leqslant 1,000,0\leqslant d<1,0<\theta<90,T\leqslant 50,000$。
(良心出题人没有构造坑人数据,不会卡精度的,只要你相信我)
$P.S.$这道题可能违背一些物理常识,但是有($chu$)一($ti$)些($ren$)原($tai$)因($cai$),就凑合着当水题做吧。


题解

刚看到这道题的时候已经停课集训$60$多天的我还真的认真回忆了一下公式……

还好想起来了……

首先,要把速度分解,这个不难,水平方向上就是$\cos\theta v$,竖直方向上就是$\sin\theta v$。

但是发现输入中给的角度是角度制,如果直接调用库里的函数需要先将其转化为弧度制。

其实$360^{\circ}=2\pi$,所以$\frac{\theta\pi}{180}$就变成了弧度制。

可能有同学说忘了$\pi$(您别说还真有)。

库里还有一个叫做$M\text{_}PI$的东西(具体操作看下面代码)。

知道了竖直方向上的速度,又知道重力加速度,就能根据公式$t=\frac{v_y}{g}$求出$t$了。

接着根据$s=v_xt$就能求出水平移动的距离了。

对于反弹,因为是等比数列,所以用等比数列求和公式即可做到$\Theta(1)$;也可以$while(1)$迭代至稳定,我就是这么做的(懒),精度设置成$1e-6$即可,$0.99^{1000}=0.000043171$,所以时间上也是没问题的。

时间复杂度:$\Theta(T\times 1000)$。

期望得分:$100$分。

实际得分:$100$分。


代码时刻

#include<bits/stdc++.h>
using namespace std;
const double eps=1e-6;
double theta,v,d,g;
int main()
{
int T;scanf("%d",&T);
while(T--)
{
scanf("%lf%lf%lf%lf",&theta,&v,&d,&g);
theta=theta*M_PI/180;
double SIN=sin(theta);
double COS=cos(theta);
double res=v;
double ans=0.0;
while(res>eps)
{
double t=2*SIN*res/g;
ans+=COS*res*t;
res*=d;
}
printf("%.5lf\n",ans);
}
return 0;
}

rp++

[CSP-S模拟测试]:物理课(数学)的更多相关文章

  1. [CSP-S模拟测试]:不等式(数学)

    题目描述 小$z$热衷于数学.今天数学课的内容是解不等式:$L\leqslant S\times x\leqslant R$.小$z$心想这也太简单了,不禁陷入了深深的思考:假如已知$L,R,S,M$ ...

  2. [CSP-S模拟测试]:A(数学)

    题目传送门(内部题44) 输入格式 一行四个整数,分别表示$S,T,a,b$. 输出格式 输出最小步数,数据保证有解. 样例 样例输入: 10 28 4 2 样例输出: 数据范围与提示 样例解释: 先 ...

  3. [CSP-S模拟测试]:装饰(数学)

    题目传送门(内部题147) 输入格式 每个测试点第一行一个正整数$T$,表示该测试点内的数据组数. 接下来$T$行,每行三个非负整数$a,b,c$,含义如题目中所示. 输出格式 对每组数据输出一行一个 ...

  4. [CSP-S模拟测试]:地理课(并查集+线段树分治)

    题目传送门(内部题146) 输入格式 从$geography.in$读入数据. 第一行两个数$n,m$,表示有$n$个点,$m$个时刻.接下来$m$行每行三个数,要么是$1\ u\ v$,要么是$2\ ...

  5. [CSP-S模拟测试]:最大值(数学+线段树)

    题目背景 $Maxtir$最喜欢最大值. 题目传送门(内部题128) 输入格式 第$1$行输入四个正整数$n,m,q$. 第$2$至$n+1$行中,第$i+1$行输入魔法晶石$i$的三种属性$(x_i ...

  6. [CSP-S模拟测试]:求和(数学)

    题目传送门(内部题107) 输入格式 一行五个正整数$x_1,y_1,x_2,y_2,m$ 输出格式 输出一个整数,为所求的答案对$m$取模后的结果. 样例 样例输入: 2 1 5 3 10007 样 ...

  7. [CSP-S模拟测试]:数列(数学)

    题目传送门(内部题95) 输入格式 第一行三个整数$n,a,b$,第二行$n$个整数$x_1\sim x_n$表示数列. 输出格式 一行一个整数表示答案.无解输出$-1$. 样例 样例输入:2 2 3 ...

  8. [CSP-S模拟测试]:Walker(数学)

    题目传送门(内部题86) 输入格式 第一行$n$接下来$n$行,每行四个浮点数,分别表示变换前的坐标和变换后的坐标 输出格式 第一行浮点数$\theta$以弧度制表示第二行浮点数$scale$第三行两 ...

  9. [CSP-S模拟测试]:Six(数学)

    题目传送门(内部题85) 输入格式 一个正整数$N$. 输出格式 一个数表示答案对$1000000007$取模后的结果 样例 样例输入1: 样例输出1: 样例输入2: 样例输出2: 样例输入3: 样例 ...

随机推荐

  1. squoosh

    谷歌在线压缩图片

  2. 【原创】大叔经验分享(59)kudu查看table size

    kudu并没有命令可以直接查看每个table占用的空间,可以从cloudera manager上间接查看 CM is scrapping and aggregating the /metrics pa ...

  3. Navicat for Mysql报错1251连接不成功Mysql

    第一步:打开Command Line Client   看清楚不是cmd,是在mysql的目录下,你会发现有2个一模一样其实哪个都行 第二步:输入mysql密码回车    就是安装mysql时设置的密 ...

  4. [Android] Installation failed due to: ''pm install-create -r -t -S 4590498' returns error 'UNSUPPORTED''

    小米特有问题 关闭开发者选项的启用MIUI优化 不得不说, 这是真的坑...

  5. 在线预览(pptx、ppt、pps、docx、doc、xlsx、xls)

    http://view.officeapps.live.com/op/view.aspx?src=<文档位置> 示例文档https://www.dujin.org/file/ppt/duj ...

  6. 第十章、typing模块

    目录 第十章.typing模块 一.说明 二.typing模块的作用 三.使用typing模块 四.typing常用类型 第十章.typing模块 一.说明 二.typing模块的作用 类型检查,防止 ...

  7. BLE 5协议栈-逻辑链路控制与适配协议层(L2CAP)

    文章转载自:http://www.sunyouqun.com/2017/04/page/2/ 逻辑链路控制与适配协议通常简称为L2CAP(Logical Link Control and Adapta ...

  8. Git学习笔记(2)-Eclipse中Git插件使用

    目前我使用的Eclipse luna版本中已经集成了git插件,这里就不介绍如何安装Git插件了,不懂可以看其他的博客. 上篇笔记介绍了Git的基本指令,实际开发中我基本都使用eclipse插件进行代 ...

  9. css 模块化

    什么是css模块化思想?(what) 为了理解css模块化思想,我们首先了解下,什么是模块化,在百度百科上的解释是,在系统的结构中,模块是可组合.分解和更换的单元.模块化是一种处理复杂系统分解成为更好 ...

  10. 网络协议相关面试问题-DNS相关面试问题

    对于网络上的大部通讯都是基于TCP/IP协议的, 其中最重要的是IP协议,它是基于IP地址的,而计算机通讯只能识别IP地址,如192.168.0.1,而不能识别像咱们在浏览器敲得见名之义的" ...