FJUT16级第一周寒假作业题解D题
题目链接:http://210.34.193.66:8080/vj/Contest.jsp?cid=160#P3
第八集,体能训练
小A和小C跋山涉水,终于来到了特工们要聚集的城市,他们俩在附近找了家宾馆住下。这时,距离特工们聚会的时间越来越近了,是时候来一波体能训练,以防遇到危险,跑得太慢了,被抓住了,就GG了…
于是,小A和小C一起来到了宾馆附近的体育馆的环形操场上跑步,起先,他们两个人约定,一开始他们两个人从同一点,反方向跑步,每次两个人面对面相遇的话,第k次相遇则需要休息k秒,然后再各自往反方向按照原本的速度继续跑步。现在,告诉你操场长度是L,小A和小C的跑步速度分别是Va和Vc 。这时候,问题来了,询问你经过k秒,输出他们相遇的次数、
由于两个人的体力有限,他们两个人约定相遇10000次就不跑了、
有多组测试案例,
每组测试案例,第一行输入三个正整数,L,Va和Vc(1<=Va,Vc<=10,1<=L<=1000)。
第二行输入一个Q(Q<=10000),表示询问的次数。
接下来有Q行,每一行输入一个正整数k(1<=k=10^9),表示询问经过k秒后,他们相遇了多少次、
对于每次询问的时间,输出他们相遇的次数、
2 1 1
8
0
1
3
10
20
21
5000000
511768840
0
1
2
4
5
6
3161
10000 思路:首先,这是一个二分题,他们每跑一圈的时间是L/(va+vc),每次休息的时间会随着相遇的次数增加,随着相遇次数增加消耗的时间是个等差数列。
这样我们可以得出第n次相遇的时候用的时间为:n*L/(va+vc)+(n+1)*n/2-n,这里最后的-n是因为第n次相遇的时候,他们还没有第n次休息,所以要把前面等差数列求和公式里的多算的一次n减去。
这里n是个二次函数,通过对这个方程分析,我们可以知道这里一定是取右边的解,这里有两种解法。
1、二分法求解:
也没什么要注意的,找到对应的方程后就是很明显也很常规的二分题,计算时候要注意转换成浮点运算。
2、解方程求解:
特别丑的解方程出来的结果附上:
ans=1/2.0-l*1.0/(va+vc*1.0)+sqrt((l*1.0/(va+vc*1.0)-1/2.0)*(l*1.0/(va+vc*1.0)-1/2.0)+2*k)
因为浮点数运算可能会有运算误差,比如6/3有可能会出现1.999999999的情况,所以需要加一个很小的数来补误差,我输出答案的时候是加了0.000001的。
FJUT16级第一周寒假作业题解D题的更多相关文章
- FJUT16级第一周寒假作业题解J题
题目链接:http://210.34.193.66:8080/vj/Contest.jsp?cid=160#P9 涨姿势之区间刷新 TimeLimit:2000MS MemoryLimit:128M ...
- FJUT16级第一周寒假作业题解I题
涨姿势题3 TimeLimit:1000ms MemoryLimit:128000KB 64-bit integer IO format:%lld Problem Description 涨姿势题就 ...
- FJUT16级第一周寒假作业题解G题
题目链接:http://210.34.193.66:8080/vj/Contest.jsp?cid=160#P6 涨姿势题1 TimeLimit:1000MS MemoryLimit:128000K ...
- 16级第一周寒假作业F题
Subsequence TimeLimit:1000MS MemoryLimit:65536K 64-bit integer IO format:%lld Problem Description A ...
- 福建工程学院16级第一周寒假作业E题----第七集,奇思妙想
第七集,奇思妙想 ...
- 16级第二周寒假作业E题
Home_W的位运算4 TimeLimit:2000MS MemoryLimit:128MB 64-bit integer IO format:%I64d Problem Description 给 ...
- 16级第二周寒假作业H题
快速幂(三) TimeLimit:2000MS MemoryLimit:128MB 64-bit integer IO format:%I64d Problem Description 计算( AB ...
- FJUT第三周寒假作业《第九集,离间计》栈
第九集,离间计 TimeLimit:1000MS MemoryLimit:128MB 64-bit integer IO format:%I64d Problem Description 拥有了 ...
- 第一周pta作业2
7-2 求最大值及其下标 (20 分) 本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始). 输入格式: 输入在第一行中给出一个正整数n(1<n≤10).第二行输入n ...
随机推荐
- HDU 5060
题意略. 这个题目最关键的是在于计算球冠的体积.令球冠体积为V. 我们可以用祖暅原理来计算V, 这里,可以看出,球冠的体积等于左图的上半个圆柱减去那个倒扣的圆台. 祖暅原理:界于两个平行平面之间的两个 ...
- Winform下去除MDI窗体边框
做项目中间遇到了MDI窗体内边框的问题,经过苦苦寻找,最终得到了解决方案 在Main窗体中调用API // Win32 Constants ; ; private const int WS_BORDE ...
- PHP网站的安全要点
1. 删除不必要的模块 PHP随带内置的PHP模块.它们对许多任务来说很有用,但是不是每个项目都需要它们.只要输入下面这个命令,就可以查看可用的PHP模块: # php - m 一旦你查看了列表,现在 ...
- django-装饰器实现PV统计
1.models层建立统计表 # 每日访问量统计 class Statistics(models.Model): pv = models.IntegerField(default=0) uv = mo ...
- Nginx反向代理实现Tomcat负载均衡
这篇短文主要介绍Tomcat的集群和用Nginx反向代理实现Tomcat负载均衡. 1.首先需要对一些知识点进行扫盲(对自己进行扫盲,囧): 集群(Cluster) 简单来说就是用N台服务器构成一个松 ...
- swift 学习之自动引用计数
swift 学习之自动引用计数 学习和研究的主要是"实例对象和实例对象直接的相会强引用所产生的内从泄漏"和"使用闭包产生的强引用造成的内存泄漏" 注意:只有以引 ...
- window下如何使用Git上传代码到github远程服务器上(转)
注册账户以及创建仓库 首先你得有一个github账号,没有自行注册,登录成功后应该是这样 在页面上方用户菜单上选择 "+"->New repository 创建一个新的仓库 ...
- VC6安装错误——Error Launching acmboot.exe
因项目需要,我需要安装Microsoft Visual C++ Professional Version 6 SP5.但是在安装时运行安装目录下的setup.exe,出现Error Launching ...
- 进程中调用CreateMutex
// TestStorage.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <Windows.h> #inc ...
- java字符串替换的问题
今天工作中遇到一个问题,需要输出mongodbObject中的部分内容,当我转换成字符串以后出现了好像无法替换的问题,经过验证,发现并非是不能替换,只是想法错误而已. package demo; /* ...