Notice: Undefined index: name in /usr/www/lib/views/home/viewtitle.html on line 188
-阅读程序 第 22 题
#include <iostream>
using namespace std;

const int N = 1001;

int n, a[N];

int ans = 0;

void dfs(int L, int R) {
	if(L > R)
		return;
	int p = L;
	for(int i = L + 1; i <= R; i += 1)
		if(a[i] < a[p])
			p = i;
	ans += (p - L + 1) * (R - p + 1) * a[p];
	dfs(L, p - 1);
	dfs(p + 1, R);
}

int main() {
	int n;
	cin >> n;
	for(int i = 1; i <= n; i += 1)
		cin >> a[i];
	dfs(1, n);
	cout << ans << endl;
}
● 判断题
第 1 题 如果输入n = 1000, 所有的a[i] = 100000,程序不会产生整形溢出。( )
第 2 题 将第11行改为if(L >= R) 程序仍然可以计算出相同的结果。( )
第 3 题 当n = 4, a = {1, 2, 4, 3}时,输出为20。( )
● 单选题
第 4 题 该程序的最劣复杂度为( )。
第 5 题 该程序在a为1,2,…,n的随机排列时,时间复杂度的期望为( )。

解答部分以后会开放。