14255. 珅泽教育CSP-J第一轮模拟考第二十套 第 35 题

珅泽教育CSP-J第一轮模拟考第二十套 第 35 题

阅读程序(三)

假定所需头文件已经包含,输入为合法字符串,运算结果在 int 的有效范围内。

using std::string;

string reduce(string s)
{
    string t = "";
    for (unsigned i = 1; i < s.size(); ++i) {
        t += s[i];
    }
    return t;
}

int solve(string a, string b)
{
    if (a == "") {
        return 0;
    }
    else if (b == "") {
        return 0;
    }
    else if (a[0] == b[0]) {
        return solve(reduce(a), reduce(b)) + 1;
    }
    else {
        int x = solve(reduce(a), b);
        int y = solve(a, reduce(b));
        return std::max(x, y);
    }
}

若两个字符串 a、b 的长度均为 n,采用常规二维动态规划逐个计算所有前缀组合,完成相同任务,其紧确时间复杂度为( )。

{{ select(1) }}

  • Θ(n)\Theta(n)
  • Θ(n2)\Theta(n^2)
  • O(nlog⁡n)O(n\log n)
  • O(2n)O(2^n)