HDU 6373(斜面上小球弹跳 运动分解)
题意是给定两个点的位置,过原点引一条射线穿过第一个点,射线位置作为斜面位置,第二个点处令一小球自由落体,问小球能碰撞到斜面几次。
开始时想算出两次碰撞中小球沿斜面运动的距离,然后发现每一段距离会因为高度差导致动能不断变大,然后一脸懵......
直到看了别人的题解,才想起运动分解来(这可是高中基础知识,罪过)。
将小球受到的重力在平行于斜面和垂直于斜面方向分解,小球在平行于斜面方向做初速度为0的匀加速直线运动,在垂直于斜面方向做类自由落体(初速度为0的匀加速直线)运动,由于能量不会因碰撞而损耗,那么只要求出小球沿斜面方向运动时在斜面上方的总时间,再求出小球在垂直于斜面方向上做匀加速直线运动加匀减速直线运动(一个周期)的单次碰撞时间(因为两次运动的对称性,此处算半周期就可以),用总时间除以单次碰撞的时间就是答案。(注意第一次碰撞所花时间只有半周期的时间)

#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
int times,n,m,ans;
double a1,a2,h,x,y,a,b,t,pt,theta,g = 9.8;
scanf("%d",×);
while (times--)
{
scanf("%lf%lf%lf%lf",&a,&b,&x,&y);
theta = atan(b/a); //斜面与水平面的夹角
a1 = g * sin(theta); //平行于斜面方向的加速度
a2 = g * cos(theta); //垂直于斜面方向的加速度
h = (y + b/a*x) * cos(theta); //小球到斜面的距离
x = (y + b/a*x) * sin(theta) + (x *(-) / cos(theta)); //小球沿斜面方向到斜面底部的距离
t = sqrt(x * / a1); //小球在斜面上运动的时间
pt = sqrt(h * / a2); //小球从初位置到斜面的单次时间
if(t > pt) //计算小球能否至少碰撞在斜面上一次
{
t -= pt;
ans = ;
}
ans += t / pt / ; //计算小球剩余的时间能完成多少来回(即碰撞次数)
printf("%d\n",ans);
}
return ;
}
HDU 6373(斜面上小球弹跳 运动分解)的更多相关文章
- HTML5 Canvas彩色小球碰撞运动特效
脚本简介 HTML5 Canvas彩色小球碰撞运动特效是一款基于canvas加面向对象制作的运动小球动画特效. 效果展示 http://hovertree.com/texiao/html5/39/ ...
- Promise实现小球的运动
Promise简要说明 Promise可以处理一些异步操作:如像setTimeout.ajax处理异步操作是一函数回调的方式;当然ajax在jQuery版本升级过程中,编写方式也有所变动. P ...
- HDU 6373.Pinball -简单的计算几何+物理受力分析 (2018 Multi-University Training Contest 6 1012)
6373.Pinball 物理受力分析题目. 画的有点丑,通过受力分析,先求出θ角,为arctan(b/a),就是atan(b/a),然后将重力加速度分解为垂直斜面的和平行斜面的,垂直斜面的记为a1, ...
- hdu 4497 GCD and LCM 质因素分解+排列组合or容斥原理
//昨天把一个i写成1了 然后挂了一下午 首先进行质因数分解g=a1^b1+a2^b2...... l=a1^b1'+a2^b2'.......,然后判断两种不可行情况:1,g的分解式中有l的分解式中 ...
- HDU 6462.人类史上最大最好的希望事件-递推 (“字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛)
人类史上最大最好的希望事件 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tot ...
- java 事件处理机制:按下上下左右键控制小球的运动
/** * 加深对事件处理机制的理解 * 通过上下左右键来控制一个小球的位置 */package com.test3;import java.awt.*;import javax.swing.*;im ...
- HDU 4087 三维上的平移缩放旋转矩阵变化
题目大意: 就是根据它给的程序的要求,不断平移,缩放,旋转三维的点,最后计算出点的位置 这里主要是要列出三种转换方式的齐次矩阵描述 平移translate tx ty tz1 0 0 00 1 0 0 ...
- HDU 4497 GCD and LCM (合数分解)
GCD and LCM Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total ...
- HDU - 6287 口算训练 二分+质因数分解
小Q非常喜欢数学,但是他的口算能力非常弱.因此他找到了小T,给了小T一个长度为nn的正整数序列a1,a2,...,ana1,a2,...,an,要求小T抛出mm个问题以训练他的口算能力.每个问题给出三 ...
随机推荐
- 【BZOJ3992】【SDOI2015】序列统计 原根 NTT
题目大意 有一个集合\(s\),里面的每个数都\(\geq0\)且\(<m\). 问有多少个长度为\(n\)的数列满足这个数列所有数的乘积模\(m\)为\(x\).答案模\(1004535809 ...
- PHP 公共方法分享180628
查看php 类的详情:方法.常量.属性( type(new \Illuminate\Http\Request());) /** * fixme 打印类详情 * @param $class object ...
- Jeesite 自定义api接口 404 访问不到页面
1.类上面要有路径 @RequestMapping(value = "${adminPath}/sys/good") adminPath 值可以在 jeesite.properti ...
- 用webpack2.0构建vue2.0单文件组件超级详细精简实例
npm init -y 初始化项目 //-y 为自动生成package.json,如果需要自行配置,去掉-y即可 安装各种依赖项 npm install --save vue 安装vue2.0 np ...
- HAOI2015 简要题解
「HAOI2015」树上染色 题意 有一棵点数为 \(N\) 的树,树边有边权.给你一个在 \(0 \sim N\) 之内的正整数 \(K\),你要在这棵树中选择 \(K\) 个点,将其染成黑色,并将 ...
- 「SCOI2015」小凸想跑步 解题报告
「SCOI2015」小凸想跑步 最开始以为和多边形的重心有关,后来发现多边形的重心没啥好玩的性质 实际上你把面积小于的不等式列出来,发现是一次的,那么就可以半平面交了 Code: #include & ...
- 牛客练习赛28 B数据结构(线段树)
链接:https://www.nowcoder.com/acm/contest/200/B来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...
- 关于python的GIL全局解释器锁的简单理解
GIL是解释器内部的一把锁,确切一点说是CPython解释器内部的一把锁,所以要注意区分 这和我们在Python代码中使用线程锁Lock并不是一个层面的概念. 1. GIL产生的背景: 在CPytho ...
- 洛谷P4363 一双木棋 chess
洛谷P4363 一双木棋 chess 省选最水的一道题了. 且看我数个月AC一道题...... 具体是这样的:我们发现这个下了棋的地方一定形成一个锯齿形,那么怎么状态压缩呢? 维护轮廓线! 从左下角出 ...
- A1117. Eddington Number
British astronomer Eddington liked to ride a bike. It is said that in order to show off his skill, h ...