自由落体
2016-05-04 22:12
169 查看
问题描述
在高为 H 的天花板上有 n 个小球,体积不计,位置分别为 0,1,2,….n-1。在地面上有一个小车(长为 L,高为 K,距原点距离为 S1)。已知小球下落距离计算公式为 d=1/2*g*(t^2),其中 g=10,t
为下落时间。地面上的小车以速度 V 前进。
小车与所有小球同时开始运动,当小球距小车的距离 <= 0.00001 时,即认为小球被小车接受(小球落到地面后不能被接受)。
请你计算出小车能接受到多少个小球。
H,S1,V,L,K,n (l<=H,S1,V,L,K,n <=100000)
小车能接受到的小球个数。
题解思路
大致思路:
就是找到小球可以与小车接触(不仅包括在车子上,也包括与车子前面相接触)的区间,然后看在这个区间里面有多少个整数就可以了。
具体实现:
分别计算小球落地的时间和小球落在小车上的时间,乘以速度然后用S减一下就可以找到相应的区间(注意要加上小车本身的长度),然后就是从0开始找整数,如果在区间里面就计数,否则就退出。
注意事项:
注意题目中的精度要求。
实现代码
背景
在高为 H 的天花板上有 n 个小球,体积不计,位置分别为 0,1,2,….n-1。在地面上有一个小车(长为 L,高为 K,距原点距离为 S1)。已知小球下落距离计算公式为 d=1/2*g*(t^2),其中 g=10,t为下落时间。地面上的小车以速度 V 前进。
小车与所有小球同时开始运动,当小球距小车的距离 <= 0.00001 时,即认为小球被小车接受(小球落到地面后不能被接受)。
请你计算出小车能接受到多少个小球。
输入
H,S1,V,L,K,n (l<=H,S1,V,L,K,n <=100000)
输出
小车能接受到的小球个数。测试输入 | 期待的输出 | 时间限制 | 内存限制 | 额外进程 | |
---|---|---|---|---|---|
测试用例 1 | 以文本方式显示 5.0 9.0 5.0 2.5 1.8 5↵ | 以文本方式显示 1↵ | 1秒 | 64M | 0 |
大致思路:
就是找到小球可以与小车接触(不仅包括在车子上,也包括与车子前面相接触)的区间,然后看在这个区间里面有多少个整数就可以了。
具体实现:
分别计算小球落地的时间和小球落在小车上的时间,乘以速度然后用S减一下就可以找到相应的区间(注意要加上小车本身的长度),然后就是从0开始找整数,如果在区间里面就计数,否则就退出。
注意事项:
注意题目中的精度要求。
实现代码
<span style="font-family:Microsoft YaHei;font-size:14px;">#include<stdio.h> #include<math.h> int main() { double h,s,v,l,k,t1,t2,s1,s2,temp; int n,i,count=0; scanf("%lf %lf %lf %lf %lf %d",&h,&s,&v,&l,&k,&n); t1=sqrt(2*(h-k)/10.0); t2=sqrt(2*h/10.0); s1=s-v*t2; s2=s-v*t1+l; for(i=0;i<n;i++) { temp=(double)(i+0.00001); if(temp>=s1&&temp<=s2) { count++; } } printf("%d\n",count); return 0; }</span>
相关文章推荐
- RS WLAN产品测试全面解决方案
- [打字练习]Four
- 利用谷歌 kaptcha 进行验证码生成
- C++两个栈实现一个队列和两个队列实现一个栈
- CentOS6.5环境使用keepalived实现nginx服务的高可用性及配置详解
- poll设备方法
- POJ 1741 Tree
- mysql为已经建立的表设置其主键(primary key)
- java并发编程(14)--java的守护线程与非守护线程
- 【SSH网上商城项目实战01】整合Struts2、Hibernate4.3和Spring4.2
- CentOS6.5环境使用keepalived实现nginx服务的高可用性及配置详解
- 腾讯面试相关资料
- 1年日记(5月篇)
- Leetcode 147. Insertion Sort List
- 242. Valid Anagram
- 【BZOJ4534】基础排序算法练习题
- 学习Unity射线的创建使用
- windows磁盘分区
- /基本命令/shell提示符
- 2016年3月14日作业(项目管理一般知识、立项管理)