题目传送门(内部题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. 【原创】大数据基础之ETL vs ELT or DataWarehouse vs DataLake

    ETL ETL is an abbreviation of Extract, Transform and Load. In this process, an ETL tool extracts the ...

  2. 你真的知道em和rem的区别吗?

    前言 em 和 rem 都是相对单位,在使用时由浏览器转换为像素值,具体取决于您的设计中的字体大小设置. 如果你使用值 1em 或 1rem,它可以被浏览器解析成 从16px 到 160px 或其他任 ...

  3. js之数据类型(对象类型——构造器对象——函数1)

    函数它只定义一次,但可能被多次的执行和调用.JavaScript函数是参数化的,函数的定义会包括形参和实参.形参相当于函数中定义的变量,实参是在运行函数调用时传入的参数. 一.函数定义 函数使用fun ...

  4. IIS 6.0 PUT上传 任意文件创建漏洞

    IIS 6.0 PUT上传 任意文件创建漏洞 require 1.IIS Server在Web服务扩展中开启了WebDAV. 2.IIS配置了可以写入的权限,包括网站 1.根目录 2.子文件夹 3.i ...

  5. django 使用mysql数据库

    一 修改settings里面的配置文件 import pymysql # 一定要添加这两行!通过pip install pymysql! 或者pycharm 里面安装 pymysql.install_ ...

  6. IPC之sem.c源码解读

    // SPDX-License-Identifier: GPL-2.0 /* * linux/ipc/sem.c * Copyright (C) 1992 Krishna Balasubramania ...

  7. dedecms织梦系统后台验证码图片不显示的解决方法

    网站迁移后,dedecms织梦系统后台验证码图片不显示的解决方法通用解决方案-取消后台验证码功能因为没有验证码,不能进后台,所以修改php文件源代码:方法一:打开dede/login.php 找到如下 ...

  8. 异步IO框架:asyncio 中篇

    上一节我们首先介绍了,如何创建一个协程对象.主要有两种方法 通过async关键字, 通过@asyncio.coroutine 装饰函数. 然后有了协程对象,就需要一个事件循环容器来运行我们的协程.其主 ...

  9. 《Python基础教程》第五章:条件、循环和其他语句

    在Python中赋值运算和比较运算是可以连接的,运算符可以连在一起使用,如:0<age<100 ==运算符判定两个对象是否相等,is判定两者是否等同(同一个对象) 断言,在错误条件出现时直 ...

  10. 检验注解@Validated 和@valid说明