CSPJ2019 阅读程序
程序三
#include <iostream> using namespace std; const int maxn = 10000; int n; int a[maxn]; int b[maxn]; int f(int l, int r,int depth) { if (l > r) return 0; int min = maxn,mink; for (int i = l; i <= r; ++i) { if (min > a[i]) { min = a[i]; mink = i; } } int lres = f(l,mink - 1, depth + 1); int rres = f(mink + 1,r, depth + 1); return lres + rres + depth * b[mink]; } int main() { cin >> n; for (int i = 0; i < n; ++i) cin >> a[i]; for (int i = 0; i < n; ++i) cin >> b[i]; cout << f(0, n - 1, 1) << endl; return 0; }
如果a数组有重复的数字,则程序运行时会发生错误。( )
如果b数组全为0,则输出为0。( )
当n=100时,最坏情况下,与第12行的比较运算执行的次数最接近的是:( )。
5000
600
6
100
当n=100时,最好情况下,与第12行的比较运算执行的次数最接近的是:( )。
100
6
5000
600
当n=10时,若b数组满足,对任意0 ≤ i < n。都有b[i] = i + 1,那么输出最大为( )。
386
383
384
385
当n=100时,若b数组满足,对任意0 ≤ i < n,都有b[i]=1,那么输出最小为( )。
582
580
579
581
发表评论