给出一个由n个数组成的序列A[1…n],要求找出它的最长单调上升子序列,设m[i](1≤i≤n),表示以A[i]结尾的最长单调上升子序列的长度,则m[1]=1,m[i](1A、m[i]=1+max{0,m[k](A[k]A[i],1≤ki)}B、m[i]=1+m[k](k=i-1i1)C、m[i]=1+max{0,m[k](A[k]≤A[i],1≤ki)}D、m[i]=max{0,m[k](A[k]A[i],1≤ki)}

给出一个由n个数组成的序列A[1…n],要求找出它的最长单调上升子序列,设m[i](1≤i≤n),表示以A[i]结尾的最长单调上升子序列的长度,则m[1]=1,m[i](1

  • A、m[i]=1+max{0,m[k](A[k]<A[i],1≤k<i)}
  • B、m[i]=1+m[k](k=i-1&&i>1)
  • C、m[i]=1+max{0,m[k](A[k]≤A[i],1≤k<i)}
  • D、m[i]=max{0,m[k](A[k]<A[i],1≤k<i)}

相关考题:

以下程序的运行结果是 【 8 】 。int k=0;void fun(int m){ m+=k; k+=m; printf("m=%d k=%d ",m,k++);}main( ){ int i=4;fun(i++); printf("i=%d k=%d\n",i,k);}

以下程序的运行结果是________。int k=0;void fun(int m){ m+=k; k+=m; printf(“m=%d\n k=%d ”,m,k++);}main(){ int i=4;fun(i++); printf(“i=%d k=%d\n”,i,k);}

以下程序的运行结果是 int k=0; void fun(int m) {m+=k;k+=m;printf("m=%d k=%d",m,k++);} main() {int i=4; fun(i++); printf("i=%d k=%d\n",i,k); }A.m=4 k=5 i=5 k=5B.m=4 k=4 i=5 k=5C.m=4 k=4 i=4 k=5D.m=4 k=5 i=4 k=5

有以下程序 fun(int x,int y) { static int m=0,i=2; i+=m+1; m=i+x+y; return m; } main() { int j=1,m=1,k; k=fun(j,m); printf("%d,",k); k=fun(j,m); printf("%d\n",k); } 执行后的输出结果是______。A.5,5B.5,11C.11,11D.11,5

有下列程序:fun (int x,int y){static int m=0,i=2;i+=m+1;m=i+x+y;return m;}main(){int j=1,m=1,k;k=fun0,m);printf("%d,"k);k=fun0,m);printf("%d\n",k);}执行后的输出结果是( )。A.5,5B.5,11C.11,11D.11,5

该程序运行的结果是( )。#include#include#define M 100void fun(int m, int *a, int *n){ int i,j=0;for(i=1;i=m;i++)if(i%7==0||i==0)a[j++]=i;*n=j;}main(){ int aa[M],n,k;clrscr();fun(10,aa,n);for(k=0;kif((k+1) ==0)printf("\n");else printf("M",aa[k]);printf("\n");}

已知有一维数组A[0...m*n-1],若要对应为m行、n列的矩阵,则下面的对应关系______可将元素A[k](0≤k<m*n)表示成矩阵的第i行、第j列的元素(0≤i<m,0≤j<n)。A.i=k/n,j=k%mB.i=k/m,j=k%mC.i=k/n,j=k%nD.i=k/m,j=k%n

以下程序执行后的输出结果是【】。includemain(){int i, m=0,n=0,k=0;for(i=9;i 以下程序执行后的输出结果是【 】。include<iostream.h>main(){int i, m=0,n=0,k=0;for(i=9;i<= 11 ;i++)switch(i/10){case 0: m++; n++; break;case 10: n++; break;default: k++; n++;}cout<<m<<n<<k;}

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。[说明]这是一个求解Josephus问题的函数。用整数序列1,2,3…,n表示顺序围坐在圆桌周围的人,并采用数组表示作为求解过程中使用的数据结构。Josephus问题描述,设n个人围坐在一个圆桌周围,现在从第s个人开始报数,数到第m个人,让他出局;然后从出局的下一个人重新开始报数,数到第m个人,再让他出局,…如此反复直到所有的人全部出局为止。[C函数]void Josephus(int A[],int n,s,m)(int i,j,k,temp;if(m==O){printf("m=0是无效的参数!\n");return;}for(i=0;i<n;i++) A[i]=i+1; /*初始化,执行n次*/i= (1) /*报名起始位置*/for(k=n;k>1;k-){if((2)) i=0;i=(3) /*寻找出局位置*/if(i!=k-1){tmp=A[i];for(j=i;J<k-1;j++) (4);(5);}}for(k=0;k<n/2;k++){tmp=A[k];A[k]=A[n-k+1];A[n-k+1]=tmp;}}

下列程序的输出结果是【 】。includeiostreamusing namespace std;class Base{public:int m,n;Base(int i,int j):m(i),n(j){}};class Derived:public Base{public:int m,k,;Derived(int i,int j):Base(i,j),m(i+1),k(j+1){}};int main(){Derived d(1,5);coutd.md.kd.n;return 0;}

阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。【说明】计算n的合数。一个整数n可以有多种划分,使其划分的一列整数之和为n。例如,整数5的划分为:54 13 23 1 12 2 12 1 1 11 1 1 1 1共有7种划分。这种划分的程序如下所示。【程序】include <stdio.h>int n[1000],m,k;void output sum(){int j;for(j=0;n[j]!=0;j++)printf("%d\t",n[j]);printf("\n");}void sum(int i)if(m-n[i]<n[i]){ m=m-n[i];(1)i++;n[i+1]=0;}else{(2)m-=n[i];i++;}if(m!=n[i])sum(i);elseoutput_sum();if(n[i]>1){n[i]--;(3)}else{while((n[i]==1)(i>O)){i--;(4)}if(i!=0){(5)sum(i);}}}void main(){int i;scanf("%d",n[0]);m=k=n[0];for(i=1;i<=k;i++)n[i]=0;while(n[0]!=1){n[0]--;i=0;sum(0);m=k;}}

有以下程序 include int fun(int (*s)[4],int n,int k) {int m,i; 有以下程序 #include <stdio.h> int fun(int (*s)[4],int n,int k) {int m,i; m=s[0][kl; for(i=1;i<n;i++) if(s[i][k]>m) m=s[i][k]; return m; } main() { int a[4][4]={{1,2,3,4},{11,12,13,14}, {21,22,23,24}, {31,32,33,34}}; printf("%d\n",fun(a,4,0)); } 程序的运行结果是______。A.4B.34C.31D.32

下列程序执行后,执行的结果是______ 。 Dim M(2) For i = 1 To 2 M(i) = 0 Next i k=2 For i = 1 To k For j = 1 To k M(j) = M(i) + 1 Print M(k): Next j Next IA.1234B.0123C.223D.2345

下面程序段的时间复杂度是(9)。for(i=0,k=0;<n;1++){ k+=A[i][j]; for(j=1;j<m;j++) A[i][j]=1}A.O(n)B.O(m+n+1)C.O(m+n)D.O(m*n)

以下程序运行后的输出结果是main{ int i,m=0,n=0,k=0; for(i=9;i=11;i++) switch(i/10) { case 0: m++;n++;break;  case 1: n++;break;  default:k++;n++; } printf("%d %d %d\n",m,n,k);}

以下程序的输出结果是#include conio.h#include stdio.h#define M 100void fun(int m, int *a, int *n){ int i,j=0; for(i=1;i=m;i++) if(i%7==0||i%11==0) a[j++]=i; *n=j;}main(){ int aa[M],n,k; clrscr(); fun(100,aa,n); for(k=0;kn;k++) if((k+1)%20==0)printf("\n"); else printf("%d",aa[k]); printf("\n"); }

str为一个字符序列,序列由字符0和1组成。请补充函数 fun(),该函数的功能是:查找该字符序列中0字符连续出现的最长长度(即0字符的个数),如果有几个0字符串长度相同,只记录最后一个0字符串的相关信息。通过m和k返回最长0字符串的长度和最后0字符的下标。例如,如果输入“01001000”,结果为:0字符串最长长度为3,起始和结尾下标依次为5、7。注意:部分源程序给出如下.请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:include<stdio.h>include<conio.h>define N 80void fun (【 】){int i, j=0;int bb[N];char *p=str;*m=0;*k=0;for(i=0;i<N;i++)bb[i]=0;i=0;while(*(p+i)){if(*(p+i)='0'){【 】i++;}else{j++;i++;}if (【 】){*m=bb[j];*k=i-1;}}}main(){char str[N];int m,n,k;clrscr();printf("***input the original string***\n");gets(str);printf("***The Original string ***\n");puts(str);fun(str,m,k);printf("\nThe length of '0' is :%d\n",m);printf("*** The suffix of character***\n");printf(" %d,%d",k-m+1,k);}

运行下列语句后,输出的结果是( )。 Option Base 1 Dim a i=1 a=Array(l, -2, 9, 0, -1, 9) Do k=a(i) For m = 10 To k Step -2 n=k+m Next m Print n+m i=i+1 Loop While Abs(m+n) <> 27A.3 27-8B.3-8 27C.-8 27 3D.-8 3 27

堆是一个键值序列{k1,k2,……kn),对i=1,2…,|n/2|,满足(48)。A.ki<k2i+1<k2iB.ki≤k2i≤k2i+1C.ki≤k2i 且ki≤k2i+1(2i+1≤n)D.ki≤k2i或ki≤k2i+1(2i+1≤n)

运行下述语句后,输出的结果是( )。 Option Base 1 Dim a i=1 a = Array(1,-2,9,0,-1,9) Do k = a(i) For m = 10 To k Step -2 n=k+m Next m Print n + m i=i+1 Loop While Abs(m + n)<>27A.3 27-8B.3-8 27C.-8 27 3D.-8 3 27

已知有一维数组A(0..m*n-1],若要对应为m行、n列的矩阵,则下面的对应关系(4)可将元素A[k](0≤k<m*n)表示成矩阵的第i行、第j列的元素(0≤i<m,0≤j<n)。A.i=k/n,j=k%mB.i=k/m,j=K%mC.i=k/n,j=k%nD.i=k/m,j=k%n

运行下列语句后,输出的结果是( )。 Option Base 1 Dim a i=1 a=Array(1,-2,9,0,-1,9) Do k=a(i) For m=10 To k Srep -2 n=k+m Next m Print n+m i=i+1 Loop While Abs(m+n)<>27A.3 27-8B.3-8 27C.-8 27 3D.-8 3 27

某建设项目现金流量图见图4-3,基准折现率为i,则该项目在k时点的现值P的表达式正确的有( )。A:P=A(P/A,i,n-m+1)(P/F,i,m-k-1)B:P=A(P/A,i,n-m+1)(P/F,i,n-k)C:P=A(F/A,i,n-m+1)(P/F,i,m-k-1)D:P=A(F/A,i,n-m+1)(P/F,i,n-k)E:P=A(P/A,i,n-k)-A(P/A,i,m-k-1)

已知有一维数组A[0.m×n-1],若要对应为m行n列的矩阵,则下面的对应关系(),可将元素A[k](O≤<k≤<m×n)表示成矩阵的第i行、第j列的元素(0≤i≤m,0匀≤n)。 A. i=k/n,j=k%mB.i=k/m,j=k%mC.i=k/n,j=k%nD.i=k/m,j=k%n

下列程序段的时间复杂度为()。for(i=0;i<m;i++)for(j=0;j<t;j++)e[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];A.O(m×n×t)B.O(m+n+t)C.O(m×t+n)D.O(m+n×t)

写出程序的运行结果。 #include main( ) { int i=0,j=0,k=0,m; for ( m=0;m4;m++ ) switch ( m ) { case 0:i=m++; case 1:j=m++; case 2:k=m++; case 3:m++; } printf ("/n%d,%d,%d,%d",i,j,k,m); } 该程序的执行结果是()。A、0,1,2,5B、0,1,2,4C、0,1,1,3D、0,1,2,3

单选题给出一个由n个数组成的序列A[1…n],要求找出它的最长单调上升子序列,设m[i](1≤i≤n),表示以A[i]结尾的最长单调上升子序列的长度,则m[1]=1,m[i](1Am[i]=1+max{0,m[k](A[k]A[i],1≤ki)}Bm[i]=1+m[k](k=i-1i1)Cm[i]=1+max{0,m[k](A[k]≤A[i],1≤ki)}Dm[i]=max{0,m[k](A[k]A[i],1≤ki)}