题库首页 › GESP等级认证(C++) › 题目 21161

下面程序使用动态规划求两个字符串的最长公共子序列(LCS)长度,横线处应填入的是( )。 #include #include #include using namespace std; int lcs_len(const string &a, const string &b) { int n = (int)a.size(), m = (int)b.size(); vector> dp(n + 1, vector(m + 1, 0)); for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) if (a[i - 1] == b[j - 1]) dp[i][j] = dp[i - 1][j - 1] + 1; else ________; // 在此处填入选项 return dp[n][m]; }

A. dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
B. dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]);
C. dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);
D. dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]) + 1;

正确答案:C

试卷来源:202512 CCF-GESP编程能力等级认证C++八级真题

本卷相关题目

在线做题 同科目题库