洛谷 P4710 「物理」平抛运动

洛谷传送门

题目描述

小 F 回到班上,面对自己 28 / 110 的物理,感觉非常凉凉。他准备从最基础的力学学起。

如图,一个可以视为质点的小球在点 A(x_0, y_0)A(x0,y0) 沿 xx 轴负方向以某速度抛出,无视除重力外的所有阻力,最后恰好以速度 vv 砸到 B(0, 0)B(0,0) 点。

给定 vv 的大小与方向,你的任务是求出 (x_0,y_0)(x0,y0)。

给定的速度单位为 m \cdot s ^ {-1}ms−1,重力加速度 g = 10 \ (m \cdot s ^ {-2})g=10 (ms−2),请输出以 mm 为单位的答案。

如果你没有学过相关内容也没有关系,你可以从样例和提示里理解该题所求内容。

输入格式

输入一行,为两个最多 66 位的小数 v, \theta(1 \leq v \leq 100, 15 ^ \circ \leq \theta \leq 75 ^ \circ )v,θ(1≤v≤100,15∘≤θ≤75∘),即速度与图中所标角在弧度制下的大小。

输出格式

输出一行,两个最多 1515 位的小数 x_0, y_0x0,y0,为你的答案。

你的答案与参考答案的相对误差或者绝对误差小于 10 ^ {-3}10−3 即视为正确。

输入输出样例

输入 #1复制

输出 #1复制

说明/提示

样例解释

如图。

14.142136 \approx 10 \sqrt 2, 0.785398 \approx \frac \pi 4 = 45 ^ \circ .14.142136≈102,0.785398≈4π=45∘.

小球从 (10, 5)(10,5) 以速度 (-10, 0)(−10,0) 抛出,即可在 t = 1st=1s 时以 (-10, -10)(−10,−10) 砸在 (0, 0)(0,0)。

提示

如果你没有学习过相关内容,下面的内容可能有帮助:

zcy 教你学物理

首先,由于单位均为标准单位,所以所有结果均可以直接数字运算;视为质点意味着没有体积。

我们可以将小球速度分解,如图:

其中水平方向上的速度 v_xv**x 即为抛出速度,运动过程中一直为 v \sin \thetavsinθ

垂直方向上的速度 v_yv**y 受重力加速,由 00 变化至 v \cos \thetavcosθ

从抛出时开始计时,当时间为 tt 时,设此时水平、垂直方向上速度的大小分别为 v_{xt}, v_{yt}vxt,vyt,水平、垂直方向上位移的大小分别为 x_{xt}, x_{yt}xxt,xyt,有:

v_{xt} = v \sin \thetavxt=vsinθ

v_{yt} = gtvyt=g**t

x_{xt} = v_{xt}txxt=vxt**t

x_{yt} = \frac 1 2 g t ^ 2 = \frac 1 2{v_{yt}t}xyt=21g**t2=21vyt**t

当 tt 恰好是落地时间时,x_{xt}, x_{yt}xxt,xyt 即为答案。


关于弧度制:

\pi = 180 ^{\circ}π=180∘

也就是说:\frac \pi 2 = 90 ^{\circ}, \frac \pi 3 = 60 ^{\circ}, \ \cdots2π=90∘,3π=60∘, ⋯


关于三角函数:

如果你是 C/C++ 选手,你可以使用 math.h / cmath 里的 sin() cos() 进行计算;

如果你是 Pascal 选手,你可以使用 math 库(在 begin 前添加 uses math;)里的 sin() cos() 进行计算。

如果你是 Python 选手,你可以使用 math 库里的 math.sin() math.cos() 进行计算。

如果你是其他语言的选手,请参考相应文档。

题解:

这题真的是一道物理题...高一文化课蒟蒻表示不太会做...

但这题其实准备知识都告诉你了:平抛运动可以分解成一个自由落体运动和匀速直线运动。矢量运算用平行四边形法则正交分解法。那么我们就得到:

水平方向上的速度\(v_x\)为抛出的速度,运动过程中为\(v\times sin(\alpha)\)(原谅我不会打cita)。而垂直方向上的速度还要加一个加速度\(g=10m/s^2\).那么就是从\(0\rightarrow v\times cos(\alpha)\)。很容易得出,这个东西还跟时间有关系。

从抛出的时候开始计时:当时间为\(t\)时,设此时的水平、竖直方向上的速度大小分别为:\(v_x,v_y\).

那么有:

\[v_x=v\times sin(\alpha)
\]

\[v_y=v\times cos(\alpha)
\]

\[v_y=gt
\]

所以,可以通过上面的那些式子搞吧搞吧得到一个运动时间的式子:

\[t=\frac{v_y}{g}
\]

因为在水平方向质点相当于做匀速直线运动,所以水平方向上的位移\(x_0\)可以被表示为:

\[x_0=v_x\times t
\]

根据三角形相似,对应边成比例,所以有:

\[(\frac{x_0}{2}):y_0=v_x:v_y
\]

变形:

\[y_0=\frac{x_0}{2}\times \frac{v_y}{v_x}
\]

所有的式子都在上面了,通过已知量可以解出两个未知量:\(x_0,y_0\)。

代码如下:

#include<cmath>
#include<cstdio>
double v,cita,vx,vy,t,x2;
const double g=10.0;
int main()
{
scanf("%lf%lf",&v,&cita);
vy=v*cos(cita);
vx=v*sin(cita);
t=vy/g;
x2=v*sin(cita)*t;
printf("%.3lf %.3lf\n",x2,(x2/2)*vy/vx);
return 0;
}

洛谷 P4710 「物理」平抛运动的更多相关文章

  1. 洛谷比赛 「EZEC」 Round 4

    洛谷比赛 「EZEC」 Round 4 T1 zrmpaul Loves Array 题目描述 小 Z 有一个下标从 \(1\) 开始并且长度为 \(n\) 的序列,初始时下标为 \(i\) 位置的数 ...

  2. 题解-洛谷P6788 「EZEC-3」四月樱花

    题面 洛谷P6788 「EZEC-3」四月樱花 给定 \(n,p\),求: \[ans=\left(\prod_{x=1}^n\prod_{y|x}\frac{y^{d(y)}}{\prod_{z|y ...

  3. 洛谷 P4714 「数学」约数个数和 解题报告

    P4714 「数学」约数个数和 题意(假):每个数向自己的约数连边,给出\(n,k(\le 10^{18})\),询问\(n\)的约数形成的图中以\(n\)为起点长为\(k\)的链有多少条(注意每个点 ...

  4. 洛谷 P7879 -「SWTR-07」How to AK NOI?(后缀自动机+线段树维护矩乘)

    洛谷题面传送门 orz 一发出题人(话说我 AC 这道题的时候,出题人好像就坐在我的右侧呢/cy/cy) 考虑一个很 naive 的 DP,\(dp_i\) 表示 \([l,i]\) 之间的字符串是否 ...

  5. 洛谷 P7360 -「JZOI-1」红包(Min-Max 容斥+推式子)

    洛谷题面传送门 hot tea. 首先注意到这个 \(\text{lcm}\) 特别棘手,并且这里的 \(k\) 大得离谱,我们也没办法直接枚举每个质因子的贡献来计算答案.不过考虑到如果我们把这里的 ...

  6. 洛谷 P7718 -「EZEC-10」Equalization(差分转化+状压 dp)

    洛谷题面传送门 一道挺有意思的题,现场切掉还是挺有成就感的. 首先看到区间操作我们可以想到差分转换,将区间操作转化为差分序列上的一个或两个单点操作,具体来说我们设 \(b_i=a_{i+1}-a_i\ ...

  7. LOJ 3045: 洛谷 P5326: 「ZJOI2019」开关

    题目传送门:LOJ #3045. 题意简述 略. 题解 从高斯消元出发好像需要一些集合幂级数的知识,就不从这个角度思考了. 令 \(\displaystyle \dot p = \sum_{i = 1 ...

  8. LOJ 3089: 洛谷 P5319: 「BJOI2019」奥术神杖

    题目传送门:LOJ #3089. 题意简述: 有一个长度为 \(n\) 的母串,其中某些位置已固定,另一些位置可以任意填. 同时给定 \(m\) 个小串,第 \(i\) 个为 \(S_i\),所有位置 ...

  9. LOJ 3093: 洛谷 P5323: 「BJOI2019」光线

    题目传送门:LOJ #3093. 题意简述: 有 \(n\) 面玻璃,第 \(i\) 面的透光率为 \(a\),反射率为 \(b\). 问把这 \(n\) 面玻璃按顺序叠在一起后,\(n\) 层玻璃的 ...

随机推荐

  1. xpath:

    from selenium import webdriverb = webdriver.Firefox()#路径读取方式一:# b.get(r"C:\我的代码\selenium自动化测试\t ...

  2. LG1879 「USACO2006NOV」Corn Fields 状压DP

    问题描述 LG1879 题解 设\(opt[i][j]\)代表前\(i\)行,且第\(i\)行状态为\(j\)的方案数. 枚举\(j\),再枚举\(k\),\(k\)为上一行的状态. 判断\(j,k\ ...

  3. 深入理解ES6之解构

    变量赋值的痛 对象 let o = {a:23,b:34}; let a = o.a; let b = o.b; 如上文代码,我们经常会遇到在各种场合需要获取对象中的值的场景,舒服一点的是获取单个属性 ...

  4. yii2关联表

    asArray()这个方法很好用,返回数组是1版本想要的形式,这种方式有种tp框架的感觉

  5. Ansible之roles角色

    一.roles简介 ansible自1.2版本引入的新特性,用于层次性.结构化地组织playbook.roles能够根据层次型结构自动装载变量文件.tasks以及handlers等.要使用roles只 ...

  6. Map拼接URL地址

    import java.util.HashMap; import java.util.Iterator; import java.util.Map; /** * @Author: hoje * Des ...

  7. Mysql 5.7:更改密码时出现ERROR 1054 (42S22): Unknown column 'password' in 'field list'

    1.环境 在新服务器上重新安装了环境,原来是5.6的,就升级到了5.7版本. 2.问题 新安装的MySQL5.7,登录时提示密码错误,安装的时候并没有更改密码,后来通过免密码登录的方式更改密码. 输入 ...

  8. cl_demo_output=>display 介绍

    Methods of CL_DEMO_OUTPUT PS:自己测试是display后的内表不能带表头. 类CL_DEMO_OUTPUT 在示例程序中创造了很多简单的数据输出的方法而不需要经典的list ...

  9. Abp vNext框架 从空项目开始 使用ASP.NET Core Web Application-笔记

    参考 Abp vNext框架 从空项目开始 使用ASP.NET Core Web Application http://www.vnfan.com/helinbin/d/745b1e040c9b4f6 ...

  10. toUpperCase(),toLowerCase()将字符串中的英文转换为全大写或全小写

    package seday01;/** * String toUpperCase() * String toLowerCase() * 将字符串中的英文转换为全大写或全小写 * @author xin ...