A: m[i][j]=max(m[i][k]+m[k+1][j]) , i<k<j , if(j-i>1).m[i][j]=0; if(j-i==1).
B: m[i][j]=max(m[i][k]+m[k][j]) , i<k<j , if(j-i>1).m[i][j]=0; if(j-i==1)
C: m[i][j]=max(m[i][k]+m[k][j]+a[k-1]*a[k]*a[k+1]) , i<k<j , if(j-i>1).m[i][j]=0; if(j-i==1)
D: m[i][j]=max(m[i][k]+m[k][j]+a[k-1]*a[k]*a[k+1]) , i<=k<=j , if(j-i>1).m[i][j]=0; if(j-i==1)
举一反三
- 有n个正整数组成的数组a,两端的数不能删除,中间每删除一个数,其得分为其本身同其两侧数的乘积,求其中间n-2个数逐个删除后的最大得分?设m[i][j] 为从a[i]到a[j]将中间数删除后的最大得分,从如下公式中选择m[i][j]的递归定义[/i][/i][/i] A: m[i][j]=max(m[i][k]+m[k+1][j]) , i<k<j , if(j-i>1).m[i][j]=0; if(j-i==1). B: m[i][j]=max(m[i][k]+m[k][j]) , i<k<j , if(j-i>1).m[i][j]=0; if(j-i==1) C: m[i][j]=max(m[i][k]+m[k][j]+a[k-1]*a[k]*a[k+1]) , i<k<j , if(j-i>1).m[i][j]=0; if(j-i==1) D: m[i][j]=max(m[i][k]+m[k][j]+a[k-1]*a[k]*a[k+1]) , i<=k<=j , if(j-i>1).m[i][j]=0; if(j-i==1)
- 下列程序段的时间复杂度为( )。 for(i=0;i<m; i++) for(j=0; j<t; j++) c[i][j]=0; for(i=0;i<m; i++) for(j=0;j<t; j++) for(k=0;k<n; k++) c[i][j]=c[i][j]+a[i][k]*b[k][j];
- 【单选题】以下算法的时间复杂度() void matrimult(int a[M][N],int b[N][L],int c[M][L]) // { int i,j,k; for(i=0;i<M;i++) for(j=0;j<L;j++) c[i][j]=0; for(i=0;i<M;i++) for(j=0;j<L;j++) for(k=0;k<N;k++) c[i][j]+=a[i][k]*b[k][j]; } A. O(n*l) B. O(m*l) C. O(m*n) D. O(m*n*l)
- 设有定义:int i=0,j=0,k=0; 则执行语句++i||++j&&++k;后i,j,k的值为() A: i=1;j=1;k=1 B: i=1;j=0;k=1 C: i=1;j=0;k=0 D: i=0;j=0;k=0
- 中国大学MOOC: 有如下程序段: Dim i%, j%, n%, m%, k% m = 0 : k = 0 For i = 1 To 5 k = k + 1 n = 0 For j = 1 To 2 n = n + 1 m = m + 1 Next j Next i MsgBox(k & & n & & m)运行该程序代码段后,消息对话框中显示的内容为( )。
内容
- 0
若二维数组a 有m 列,则在a[i][j]前的元素个数为( )。[/i] A: j ∗ m + i B: i ∗ m + j C: i ∗ m + j – 1 D: i ∗ m + j + 1
- 1
若二维数组a有m列,则在数组元素a[i][j]前的元素个数为()[/i] A: j * m + i B: i * m + j C: i * m + j - 1 D: j * m + i - 1
- 2
下列程序段的时间复杂度是( )。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)
- 3
下面的程序求100~499之间的所有“水仙花数”,即各位数字的立方和恰好等于该数本身的数。 #include "stdio.h" void main() { int i,j,k,m,n; for(i=1;i<5 ; i++) for(j=0; j<=9; j++) for(k=0; k<=9; k++) { m=i*100+j*10+k; n=i*i*i+j*j*j+k*k*k; if(________) printf("%d ",m); } }
- 4
二维数组a有m行n列,则在a[i][j]之后的元素个数为[/i] A: m*n-(i * n + j + 1) B: m*n-(j * n + i) C: m*n-(i * n + j) D: m*n-(i * n + j – 1)