组合题6 个小题
已作答 0 / 6
1#include <iostream>2using namespace std;3const int maxn = 10000;4int n;5int a[maxn];6int b[maxn];7int f(int l, int r, int depth) {8 if (l > r)9 return 0;10 int min = maxn, mink;11 for (int i = l; i <= r; ++i) {12 if (min > a[i]) {13 min = a[i];14 mink = i;15 }16 }17 int lres = f(l, mink - 1, depth + 1);18 int rres = f(mink + 1, r, depth + 1);19 return lres + rres + depth * b[mink];20}21int main() {22 cin >> n;23 for (int i = 0; i < n; ++i)24 cin >> a[i];25 for (int i = 0; i < n; ++i)26 cin >> b[i];27 cout << f(0, n - 1, 1) << endl;28 return 0;29}当 n=100 时,最坏情况下,与第 12 行的比较运算执行的次数最接近的是:()。