多题目

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;
}

第1题 判断

如果a数组有重复的数字,则程序运行时会发生错误。(   )

A.
正确
B.
错误

第2题 判断

如果b数组全为0,则输出为0。(   )

A.
正确
B.
错误

第3题 单选

当n=100时,最坏情况下,与第12行的比较运算执行的次数最接近的是:(   )。

A.

5000

B.

600

C.

6

D.

100

第4题 单选

当n=100时,最好情况下,与第12行的比较运算执行的次数最接近的是:(   )。

A.

100

B.

6

C.

5000

D.

600

第5题 单选

当n=10时,若b数组满足,对任意0 ≤ i < n。都有b[i] = i + 1,那么输出最大为(   )。

A.

386

B.

383

C.

384

D.

385

第6题 单选

当n=100时,若b数组满足,对任意0 ≤ i < n,都有b[i]=1,那么输出最小为(   )。

A.

582

B.

580

C.

579

D.

581

发表评论

登录 后再回复