分治比普通递归多了哪步

分治比普通递归多的那一步是【0】。

开始练习 →

哪个不是分治

下面这几个里,不算分治的是【0】。

开始练习 →

分治求和得多少

把数组一分为二各自求和再相加,区间写成半开区间 [l, r)。运行下面这段程序: #include <algorithm> #include <iostream> #include <numeric> #

开始练习 →

分治求最大值

运行下面这段程序: #include <algorithm> #include <iostream> #include <numeric> #include <string> #include

开始练习 →

用分治求和

补全 dsum:把区间 [l, r) 从中间切开,两边各自递归求和,再把两个结果加起来。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

用分治求最大值

补全 dmax:两边各自求出最大值,再取大的那个。这道题的「合」不是相加,而是取较大的——同一套骨架,换个合并方式就换了用途。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

分治结果要和直接算的一样

dsum、dmax 已经写好。和标准库的 accumulate、max_element 比一比:两个都对上输出 两项一致,否则输出 有不一致。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

什么是递归树

第 1 步:搬 3 层:一次调用 第 2 步:它要搬两次 2 层 第 3 步:每个 2 层又要搬两次 1 层 第 4 步:每个节点搬一次:共 7 个 h3 h2 h2 h1 h1 h1 h1 递归树画的是【0】。

开始练习 →

归并排序递归树有多高

归并排序每次把问题砍一半,递归树的高度大约是【0】。

开始练习 →

怎么用递归树估复杂度

用递归树估算复杂度,做法是【0】。

开始练习 →