GESP C++ 真题 · 逐题精解
首页C++八级真题 › 2023年12月 › 第11题

GESP 2023年12月 C++八级 单选题 第11题

C++八级单选题2023年12月第11题

所属知识点:各类算法复杂度 难度要求:掌握 考频:中频

下面程序的时间复杂度为(record_choose 为记忆化数组):
int record_choose[MAXN][MAXM];
int choose(int n, int m) {
    if (m == 0 || m == n)
        return 1;
    if (record_choose[n][m] == 0)
        record_choose[n][m] = choose(n - 1, m - 1) + choose(n - 1, m);
    return record_choose[n][m];
}

正确答案:D

题目解析
在算组合数 C[n][m],用递归 + 记忆化。被实际访问到的二维状态个数约为 n·m−m·m=m·(n−m),每个状态 O(1),故 O(m×(n−m)),选 D。

想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?

进入 GESPPASS 开始练习