对于序列X和Y,用D[i,j]表示X[1..i]和Y[1..j]的最长公共子序列的长度,当X[i]!=Y[j]时,D[i,j]=max{D[i-1,j],D[i,j-1]},下述不正确的是( )?[/i]
A: D[i-1,j]表示X[i]对求D[i,j]无贡献的情况,D[i,j-1]表示Y[j]对求D[i,j]无贡献的情况
B: D[i-1,j]表示对X[1..i-1]和Y[1..j]求最长公共子序列
C: D[i-1,j]和D[i,j-1]表示的含义相同
D: D[i,j]有可能和D[i,j-1]相等,也有可能大,如果D[i,j]大,则最多大1
A: D[i-1,j]表示X[i]对求D[i,j]无贡献的情况,D[i,j-1]表示Y[j]对求D[i,j]无贡献的情况
B: D[i-1,j]表示对X[1..i-1]和Y[1..j]求最长公共子序列
C: D[i-1,j]和D[i,j-1]表示的含义相同
D: D[i,j]有可能和D[i,j-1]相等,也有可能大,如果D[i,j]大,则最多大1
举一反三
- 对于序列X和Y,用D[i,j]表示X[1..i]和Y[1..j]的最长公共子序列的长度,当X[i]=Y[j]时,D[i,j]=D[i-1,j-1]+1,递推式中“+1”表示什么( )?[/i] A: 最长公共子序列中最后的元素,为相同的X[i](Y[j]) B: X的最后一个元素 C: Y的最后一个元素 D: 无实际含义
- 下列程序段的时间复杂度是( )。for (i=1; i<=m1; ++i) for (j=1; j<=n2; ++j) Q[i][j] = 0;for (i=1; i<=m1; ++i) for (j=1; j<=n2; ++j) for (k=1; k<=n1; ++k) Q[i][j] += M[i][k] * N[k][j];[/i][/i][/i] A: O(m1*n2) B: O(m1*n2*n1) C: O(m1+n2*n1) D: O(m1*n2+n1*n2) E: O(m1*n2+n1*n2+m1*n1)
- n阶对称矩阵a满足a[i][j]=a[j][i],i,j=1…n,用一维数组t存储时,t的长度为____,当i=j,a[i][j]=t[2],i>;j,a[i][j]=t[3],i<;j,a[i][j]=t[4]。[/i][/i][/i][/i][/i]
- 试分析下面代码段的时间复杂度: for(i=2;i<=n;++i) for(j=2;j<=i-1;++j) { ++x; a[i][j]=x; }[/i]
- 已知列表x=[1,2,3]和y=[4,5,6],表达式[(i,j) for i,j in zip(x,y) if i==3]的值为(______ )。