2020牛客寒假训练营5

链接:https://ac.nowcoder.com/acm/contest/3006/D

来源:牛客网

题目描述
牛牛在辛苦的一天的比赛之后,要去找牛妹玩,其实牛妹那天也在比赛。他为了找到牛妹,要尽快的从自己的比赛地到她的比赛地。

还记得吗,比赛地都是只在xx轴上的,所以两个人的坐标都满足y=0y=0。牛牛除了可以以11单位距离/单位时间的速度移动任意时间以外,还可以花费11单位时间进行闪现。每次闪现时,如果当前他的坐标是x=kx=k,他将闪现到x=\sqrt[3]{k}x=
3

k

的位置。

请帮他算算,最短需要多少时间,他可以找到牛妹~

输入描述:
输入数据包括多组用例,输入第一行包含一个数字T(1 \leq T \leq 5 \times 10^5)T(1≤T≤5×10
5
),表示数据组数。

接下来TT行,每行包括两个整数a,b(|a|,|b|\leq 10^6)a,b(∣a∣,∣b∣≤10
6
),表示牛牛所在的位置和牛妹所在的位置。

输出描述:
输出共TT行,每行包括一个实数,表示牛牛所花费的最短时间。
如果你的答案是aa,标准答案是bb,当|a-b|\leq 10^{-6}∣a−b∣≤10
−6
时,你的答案将被判定为正确。
示例1
输入
复制
2
3 -1
1 2
输出
复制
3.442249570
1.000000000

#include<stdio.h>
#include<math.h>
int main()
{
	int t;
	double a,b;
	scanf("%d", &t);
		while(t--)
		{
			scanf("%lf%lf", &a,&b);
			double x=a;
			double y=b;
			double q=1.0/3.0;
			double ans=0;
			double k=fabs(a-b);
		while(1)
		{
			if(a<0)
			{
				x=-pow(-a,q);
			}
			else
			{
				x=pow(a,q);
			}
			if(fabs(a-b)-1>fabs(x-b))/*这个式子两个作用,其一是来判断这一步
			是闪现
			 还是一步走快,取其快,一旦一步一步走快,后面的路都是一步走快(细品),如果闪现快,就
			 判断下一步;第二个
			 作用是否到达终点,一旦到达,就结束循环;*/ 
			{
				ans++;
				a=x;
			}
			else
			break;
		}
		ans+=fabs(a-b);
		printf("%.8f\n", ans); 
 } 
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值