贪心-牛客寒假集训营5-D-牛牛与牛妹的约会

贪心-牛客寒假集训营5-D-牛牛与牛妹的约会

题目:
在这里插入图片描述

题意:

在 数 轴 上 给 定 两 个 位 置 坐 标 a , b , 从 a 走 到 b 有 两 种 走 法 , 在数轴上给定两个位置坐标a,b,从a走到b有两种走法, a,b,ab

① 、 从 a − > a 3 , 代 价 为 1 个 单 位 时 间 。 ①、从a->\sqrt[3]{a},代价为1个单位时间。 a>3a 1

② 、 以 1 单 位 距 离 / 1 单 位 时 间 的 速 度 步 行 。 ②、以1单位距离/1单位时间的速度步行。 1/1

问 从 a 到 b 的 最 小 代 价 时 间 是 多 少 。 问从a到b的最小代价时间是多少。 ab

题解:

贪 心 , 比 较 每 一 步 的 代 价 , 选 择 代 价 较 小 的 方 案 。 贪心,比较每一步的代价,选择代价较小的方案。

因 为 a − > a 3 的 代 价 是 1 , 在 1 个 单 位 时 间 里 方 案 ② 可 以 靠 近 1 个 单 位 距 离 , 所 以 对 比 单 位 时 间 里 , 哪 种 方 案 使 得 距 离 差 ( 坐 标 的 绝 对 值 差 ) 更 小 , 即 ∣ a 3 − b ∣ 与 ∣ a − b ∣ − 1 的 大 小 因为a->\sqrt[3]{a}的代价是1,在1个单位时间里方案②可以靠近1个单位距离,\\所以对比单位时间里,哪种方案使得距离差(坐标的绝对值差)更小,即|\sqrt[3]{a}-b|与|a-b|-1的大小 a>3a 111使()3a bab1

注 意 : ① 、 对 a 开 立 方 根 : a > 0 : p o w ( a , 1.0 / 3 ) ;       a < 0 : − p o w ( − a , 1.0 / 3 ) 注意:①、对a开立方根:a>0:pow(a,1.0/3);\ \ \ \ \ a<0:-pow(-a,1.0/3) aa>0:pow(a,1.0/3);     a<0:pow(a,1.0/3)

             ② 、 显 然 开 立 方 根 的 方 案 效 率 是 递 减 的 , 因 此 先 处 理 连 续 开 立 方 根 的 操 作 , 最 后 直 接 加 上 距 离 差 。 \ \ \ \ \ \ \ \ \ \ \ \ ②、显然开立方根的方案效率是递减的,因此先处理连续开立方根的操作,最后直接加上距离差。             

代码:

#include<bits/stdc++.h>
#define ll long long
#define inf 0x7fffffff
using namespace std;
int T;
double a,b;
double ans;
int main()
{
    cin>>T;
    while(T--)
    {
        ans=0;
        scanf("%lf%lf",&a,&b);
        double ka,da;
        if(a<0)
        {
            if(abs(-pow(-a,1.0/3.0)-b)<abs(a-b)-1)
                while(abs(-pow(-a,1.0/3.0)-b)<abs(a-b)-1)
                {
                    ans+=1;
                    a=-pow(-a,1.0/3.0);
                }
        }

        else
        {
            if(abs(pow(a,1.0/3.0)-b)<abs(a-b)-1)
                while(abs(pow(a,1.0/3.0)-b)<abs(a-b)-1)
                {
                    ans+=1;
                    a=pow(a,1.0/3.0);
                }
        }

        ans+=abs(a-b);

        printf("%.9f\n",ans);
    }
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值