Description
用N个半径为R厘米的求进行如下实验
在H米高的位置设置了一个圆筒,将求竖直放入(从上到下第i个球的底端距离地面高度为H+2R)。实验开始时最下面的球开始掉落,此后每一秒又有一个球开始掉落。不计空气阻力,并假设球与球或地面间的碰撞是弹性碰撞
请求出实验开始后T秒钟时每个球底端的高度。假设重力加速度g=10m/s^2
Input
第一行为用例组数t,每组用例占一行包括四个整数N,H,R,T分别表示球的个数,圆筒底端距地面距离,球半径,查询时间T
Output
对于每组用例,输出T秒后这N个球底端距离地面距离
Sample Input
2
1 10 10 100
2 10 10 100
Sample Output
4.95
4.95 10.20
Solution
首先考虑一下只有一个球的情形,从高度的位置下落需要花费时间为
这样的话,在时刻T内,令k为满足kt<=T的最大整数,那么
接下来再考虑多个球的情形,与Ants类似,当把两球看作质点,即R=0时就可以无视它们的碰撞,视作直接互相穿过继续运动。由于在有碰撞时球到达顺序不会发生改变,所以无视碰撞,将计算得到的坐标进行排序后,就可以知道每个球的最终位置。而R>0时只需将下方开始的第i个球在按照R=0时计算的结果上加上2Ri就好了
Code

#include<cstdio>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
#define maxn 101
int M,N,H,R,T;
double g=10.0;
double y[maxn];//球的最终位置
double solve(int T)//求出T时刻球的位置
{if(T<0)//T<0说明该球还未从圆筒中下落 return H;double t=sqrt(2*H/g);int k=(int)(T/t);if(k%2==0){double d=T-k*t;return H-g*d*d/2;}else{double d=k*t+t-T;return H-g*d*d/2;}
}
int main()
{scanf("%d",&M);while(M--){scanf("%d%d%d%d",&N,&H,&R,&T);for(int i=0;i<N;i++)y[i]=solve(T-i);sort(y,y+N);//对坐标排序 for(int i=0;i<N;i++)printf("%.2lf%c",y[i]+2*R*i/100.0,i==N-1?'\n':' ');//按格式输出 }return 0;
}

POJ 3684 Physics Experiment(弹性碰撞)相关推荐

  1. poj 3684 数学物理题 Physics Experiment

    被代班和建模占据了大堆时间.现在开始继续做ACM了,终于开始做了. 这题韦广说是线段树,让我看看.看了之后觉得是推导的数学题. 所有的球都按第一个球算出来(除了没动的球),然后加上和第一个球的距离即可 ...

  2. Physics Experiment 物理题

    知道下面这两个结论题目就会辣 1.球心发生弹性碰撞的相同两球,相当于速度交换 2.每个球只能在h范围内进行变化,因为之前落下的会占据高度,这个球下面一定有前面落下球的个数 然后把所有时间求得的高度排序 ...

  3. 备战ccpc分站赛:秦皇岛和威海站(数论模块和dp模块)

    挑战程序设计竞赛(第2版)练习题 tips:难度(个人主观判断): 简单* 简单但卡思维 ** 中 *** 中稍加思考 **** 难 ***** 1 . 记录结果再利用的"动态规划" ...

  4. 2000门课程名称翻译大全,写英文简历时用得着的

    C 语言 C Language  CAD 概论 Introduction to CAD  CAD/CAM CAD/CAM  COBOL语言 COBOL Language  生物物理学 Biophysi ...

  5. 2000 门课程名称英文翻译大全

    C 语言 C Language CAD 概论 Introduction to CAD CAD/CAM CAD/CAM COBOL语言 COBOL Language 生物物理学 Biophysics 真 ...

  6. 微波技术在计算机的应用论文,计算机数据自动处理在微波实验中的应用.doc

    计算机数据自动处理在微波实验中的应用 [摘要]微波实验处理数据,Microwave experimental modern physics experiment will do one of the ...

  7. 成绩单课程翻译参考总表

    生物物理学 Biophysics 真空冷冻干燥技术 Vacuum Freezing & Drying Technology 16位微机 16 Digit Microcomputer ALGOL ...

  8. ligo 原理_在LIGO的实验中,Ubuntu被用来检测引力波

    ligo 原理 发表于: 管理员 6天,3小时前 (Posted by: admin 6 days, 3 hours ago) (Comments) ( 评论 ) Laser Interferomet ...

  9. 赢得阵亡将士纪念日的十大怪异项目

    What better way to kick off your summer than building something to dazzle your neighbors with a symp ...

  10. 2000门课程名称翻译大全

    2000门课程名称翻译大全 BASIC 语言及应用 BASIC Language & Application C 语言 C Language CAD 概论 Introduction to CA ...

最新文章

  1. 【文本分类】Deep Pyramid Convolutional Neural Networks for Text Categorization
  2. odoo tree视图过滤数据_在EA中建立优雅的仪表板视图
  3. sdram 时钟相位_stm32f429主频大于160MHz时,sdram数据不稳定
  4. SAP UI5应用点了search按钮后的实现调试
  5. ngix莫名挂掉 signal process started
  6. python 求最大值实例_Python 求数组局部最大值的实例
  7. 7 分钟全面了解位运算
  8. shell数组使用技巧
  9. Scala学习之Option类
  10. 存数据返回他的序列号id_雪花般的分布式唯一ID雪花算法
  11. 为你的软件选择正确的许可证方案
  12. 【转下载】黑莓7290中文说明书
  13. mac删除默认ABC输入法,mac删除自带ABC输入法
  14. close函数 qt_QT中的close、closeEvent和析构函数的理解(基础知识)
  15. [数据库] MariaDB安装及使用
  16. Transferable Joint Attribute-Identity Deep Learning for Unsupervised Person Re-Identification阅读总结
  17. 时滞/延迟微分方程(delay-differential equation)
  18. 川藏南线(318)之旅
  19. Us biological——生物试剂盒适用于科学应用和环境
  20. 数字IT基础-数据采集总线

热门文章

  1. [嵌入式学习必备网站分享]嵌入式开发必须收藏的二十个网站 内附超链接 实用 嵌入式单片机学习网站
  2. 2个抖音工程师搞出新工具,意外风靡字节内部,项目经理用上安静多了,程序员不骗程序员...
  3. 互联网大佬生存法则:如何防守周鸿祎?
  4. Java开发发送短信功能的实战教程(真实项目已在使用)
  5. Python学习(52周存钱)
  6. 网站访问速度优化之二 - JS和CSS优化
  7. 选择排序为什么是不稳定的?
  8. 在企业ceph运维中问题处理解决方案---持续更新
  9. 如何在固定时间自动刷新网页?
  10. 会员数据化运营应用场景与分析模型