题目

  • 给定一个长度为 $n$ 的整数数列,请你计算数列中的逆序对的数量。
  • 逆序对的定义如下:对于数列的第 $i$ 个和第 $j$ 个元素,如果满足 $i<j$ 且 $a[i] > a[j]$,则其为一个逆序对;否则不是。

本文题目数的三次方根

代码

代码详解浮点数二分模板

#include<iostream>
using namespace std;

int main() {
    double x;
    cin >> x;
    double l = -100000, r = 100000;
    while(r - l > 1e-7) {
        double mid = (l + r) / 2;
        if(mid * mid * mid >= x) r = mid;
        else l = mid;
    }
    
    printf("%lf", l);
    return 0;
}

注意:注意开三次方根,与开根号不同,开三次方是允许是负数,所以左边界不能是$0$,尽量选一个较小的数

  • 开根号的写法
#include<iostream>
using namespace std;

int main() {
    double x;
    cin >> x;
    double l = 0, r = x;
    while(r - l > 1e-7) {
        double mid = (l + r) / 2;
        if(mid * mid >= x) r = mid;
        else l = mid;
    }
    
    printf("%lf", l);
    return 0;
}
最后修改:2022 年 12 月 30 日 11 : 43 PM
如果我的文章对你有用,请随意赞赏