2020頭の冬のアルゴリズムベースキャンプ5 D.牛肉オフ牛と牛姉妹の予定

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

タイトル説明

レースでのハードな一日後の牛肉は、再生するために行くために牛の妹が、実際には、またレース牛の妹の日です。できるだけ早く彼女のゲームに地面から彼のゲームに彼の牛の女の子を見つけるために。

二人は座標を満たすので、ゲームは唯一のx軸である、覚えておいてくださいY = 0また、牛肉では、時間の単位距離率1 /単位時間当たりに移動することができ、それはまた、フラッシュユニットの時間がかかることがあります。たびにフラッシュは、彼の現在の座標ならばX = K、彼はにフラッシュされるX = \ SQRT [3] {K}位置。

彼は最低限必要な、彼は牛の女の子を見つけることができますどのくらいの時間を計算する助けてください〜

 思考

 通常の移動速度に貪欲シンプル、そしてフラッシュコントラスト。カードは、そうでない場合はNaNが、もしそうなら少し不快、POW関数は立方根を計算し、(?????)負の立方根することはできませんがあり、私はあまりにも難しい、このために数回ワ。ライブラリ関数のCBRTへの直接呼び出し(ライブラリ関数の立方根を見つけます。)

その後速度計算のための良い、次フラッシュnexpostionの最初の到着の計算された位置、距離は、現在位置の座標と姉妹牛を使用して計算され、後者が1.0より大きい場合に前者が減算される場合、いくつかの計算された座標を点滅、フラッシュ説明速い、遅いか、説明を点滅、点滅し続けます。その後、フラッシュが距離が長くなりますので、2人が同じで正と負を考慮していない、計算はそれを満たすので、上記の要件、負の数です。

/*************************************************************************
    > File Name: D.cpp
    > Author: amoscykl
    > Mail: [email protected]
    > Created Time: 2020年02月14日 星期五 14时19分56秒
 ************************************************************************/
 
#include<bits/stdc++.h>
using namespace std;
double sqrt3(double x){
    return cbrt(x);
}
int main(){
    int T;
    scanf("%d", &T);
    while (T--){
        int a, b;
        scanf("%d %d", &a, &b);
        double x = a;
        double y = b;
        double res = 0.0;
        while (1){
            double nex = sqrt3(x);
            double lastdist = abs(x - y);
            double nowdist = abs(nex - y);
            if (lastdist - nowdist > 1.0){
                x = nex;
                res += 1.0;
            }
            else{
                res += lastdist;
                break;
            }
        }
        printf("%.8lf\n", res);
    }
    return 0;
}

 

公開された204元の記事 ウォン称賛13 ビュー10000 +

おすすめ

転載: blog.csdn.net/weixin_43701790/article/details/104313383