摘要:
Acwing790.数的三次方根 题解 做法一:通过二分运算到符合精度要求 #include <iostream> #include <cstdio> using namespace std; #define f 1e-8 int main() { double x; cin >> x; doubl 阅读全文
posted @ 2022-05-07 19:44
czyaaa
阅读(75)
评论(0)
推荐(0)
摘要:
Acwing789.数的范围 题解 最左边界,每次 mid >= x 则 r = mid, 再找左边是否有符合要求的边界。 最右边界,每次 mid ⇐ x 则 l = mid, 再找右边是否有符合要求的边界。(注意当l = r-1时 ,(l+r)>> 1 == l 故我们需要 mid = (l + 阅读全文
posted @ 2022-05-07 19:40
czyaaa
阅读(99)
评论(0)
推荐(0)
摘要:
Acwing792.高精度减法 题解 #include <iostream> #include <vector> using namespace std; bool cmp(vector<int> &a, vector<int> &b) { if(a.size() != b.size()) retu 阅读全文
posted @ 2022-05-07 19:33
czyaaa
阅读(24)
评论(0)
推荐(0)
摘要:
Acwing791.高精度加法 题解 高精度加法 #include <iostream> #include <cstdio> #include <vector> using namespace std; vector<int> add(vector<int> &a, vector<int> &b) 阅读全文
posted @ 2022-05-07 19:09
czyaaa
阅读(34)
评论(0)
推荐(0)
摘要:
Acwing788.逆序对的数量 题解 暴力做法:对每个字符串前或后二选一进行统计,复杂度O(n2)超时 归并排序:由于归并二分的特性,能够保证每个数在没排序前都能统计到(会分到长度为2的序列),同时排序完左右后并不影响右边对于左边的逆序对数,或左边对于右边的逆序对数,时间复杂度O(nlogn) # 阅读全文
posted @ 2022-05-07 11:07
czyaaa
阅读(37)
评论(0)
推荐(0)
摘要:
Acwing787.归并排序 题解 归并排序:采用分治思想,将左右完成排序,再进行一个归并,用左右得出整体的结果 #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int N = 1 阅读全文
posted @ 2022-05-07 10:50
czyaaa
阅读(17)
评论(0)
推荐(0)
摘要:
Acwing786.第k个数 题解 快排本质上就是找出所取数在序列中的位置,再对其左右进行二分。 所以本题用快排可以以O(nlogn)复杂度解出。 #include <iostream> #include <cstdio> using namespace std; const int N = 100 阅读全文
posted @ 2022-05-07 10:40
czyaaa
阅读(34)
评论(0)
推荐(0)
摘要:
Acwing785.快速排序 题目 题解 快排最坏情况为:O(n2),本题若遇到最坏情况会超时,故我们需要优化快排,每次取中间的数,而不是取边界的数 最坏情况分析————序列已经有序: 每次取左区间的数进行快排,每次调用函数遍历r-l次,调用函数次数为n次,时间复杂度O(n2) 每次取中间的数进行快 阅读全文
posted @ 2022-05-07 10:17
czyaaa
阅读(36)
评论(0)
推荐(0)