列表

详情


NC19313. 迎风舞

描述

女装会成瘾
由于某人的精心设计,小可爱掉入了女装的天坑无法自拔。
于是……她开始疯狂的成批的买女装。
而Kirito_Rivaille为了戒掉他的女装病,准备实施家暴——把小可爱的女装从窗户扔下去
他们家距离地面的高度为H,也就是说,女装都是从这了被抛出去的。
而由于Kirito_Rivaille体力有限,(女装也很沉),所以她抛出去的速度最大是v(最小是0);
之后呢,Kirito_Rivaille为了不让小可爱在下去捡到,于是想尽可能的抛的远一点。
所以现在他想找个合适的角度抛出。
作为Kirito_Rivaille身边的活宝,你的任务是帮助Kirito_Rivaille。
给出他们俩住的屋子的高度H和抛出速度v,请你找到一个合适的角度θ使得落地时距他们脚下的地面(H=0的位置)的直线距离最远。
然而小可爱并不关心这个角度是多少,只关心距离他们的直线距离是多少。
输出四舍五入保留五位小数,当你的答案与std的相对误差不超过0.00001时就算正确了。

说明:不考虑空气阻力,g取9.80665。
提示公式:
    x=vtcosθ,
    y=H+vtsinθ-0.5*gt2
其中t为飞行时间。


输入描述

第一行一个正整数T

接下来T行每行两个实数H,v

输出描述

T行每行一个数,保留五位小数。

示例1

输入:

1
0 10

输出:

10.19716

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++14(g++5.4) 解法, 执行用时: 4ms, 内存消耗: 476K, 提交时间: 2020-04-28 08:05:27

#include<stdio.h>
#include<math.h>
#define g 9.80665
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        double h,v;
        double x;
        scanf("%lf%lf",&h,&v);
        printf("%.5lf\n",v*sqrt(v*v+2*g*h)/g);
    }
}

C++11(clang++ 3.9) 解法, 执行用时: 5ms, 内存消耗: 504K, 提交时间: 2018-10-05 21:01:26

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int T;
	double v,h;
	cin>>T;
	while(T--){
		cin>>h>>v;
		printf("%.5f\n",1.0*v/9.80665*sqrt(v*v+2.0*9.80665*h));
	}
	return 0;
}

上一题