已知序列X={x1,x2,…,xm},序列Y={y1,y2,…,yn},使用动态规划算法求解序列X和Y的最长公共子序列,其最坏时间复杂度为()。A、O(m*n)B、O(m+n)C、O(m*2n)D、O(n*2m)

题目

已知序列X={x1,x2,…,xm},序列Y={y1,y2,…,yn},使用动态规划算法求解序列X和Y的最长公共子序列,其最坏时间复杂度为()。

  • A、O(m*n)
  • B、O(m+n)
  • C、O(m*2n
  • D、O(n*2m

相似考题
更多“已知序列X={x<sub>1</sub>,x<sub>2</su”相关问题
  • 第1题:

    Command1_Click()事件代码如下: Private Sub Command1_Click() Dim x As Integer, Y As Integer x = 6 : Y : 8 Call ABC(X, Y) Print X; Y End Sub Private Sub ABC(ByVal X As Integer,Y As Integer) X = X + 4 Y = Y = 2 End Sub 事件发生后,X和Y的值分别为 ______。

    A.6, 8

    B.10, 10

    C.10, 8

    D.6, 10


    正确答案:D
    解析:事件发生时,首先定义两个变量X,Y并给他们赋值6和8。然后调用过程ABC,在过程ABC中有两个形参X,Y。X是按值传递,Y是按地址传递,所以在ABC过程中,对形参x的修改并不影响对应的实参x,但对形参Y的修改将影响到相应的实参Y。所以过程调用后,输出的X、Y值分别为6、100。

  • 第2题:

    有如下程序: Private Sub Command1_Click() Dim a As Single Dim b As Single a=5:b=4 Call Sub1(a,b) End Sub Sub Sub1(x As Single,y As Single) t=X X=t\Y Y=t Mod y End Sub 在调用运行上述程序后,a和b的值分别为

    A.0 0

    B. 1 1

    C.2 2

    D.1 2


    正确答案:B
    解析:考查考生对调用通用过程的掌握情况。
      [解题要点] 调用一个过程时,必须把实际参数传送给过程,完成形式参数与实际参数的结合,然后用实际参数执行调用的过程。因为在默认的情况下,变量都是通过“引用”传送给sub1过程,在这种情况下,可以通过改变过程中相应的参数来改变变量的值。过程Sub1的形参获得a,b的地址,此时x=5,y=4,在过程Sub1中,将x,即5的值赋给t,而将t\y的值赋给x,将t除以y的余数赋给y,此时x,y的值为1,1。
      [错解分析] 调用通用过程可以返回多个参数值。
      [考点链接] 过程调用、参数传递。

  • 第3题:

    执行下面程序,第一行输出结果是【 】,第二行输出结果是47。

    Option Explicit

    Private Sub Form_Click( )

    Dim A As Integer

    A=2

    Call Sub1 (A) End Sub

    Private Sub1 (x As Integer)

    x=x*2+1

    If x<10 Then

    Call Sub1 (x)

    End If

    x=x*2+1

    Print x

    End Sub


    正确答案:23
    23 解析:递归是一种十分有用的程序设计技术。递归过程是在过程定义中调用(或间接调用)本过程的过程。递归过程的关键部分就是要子过程函数 Sub1()被调用了多少次。当x=2时调用了第1次,当 x=5时调用了第2次,当x=11时不再调用,退出之前分别按x=23和x=47输出。注意:通用过程的调用和通用过程中的参数调用。

  • 第4题:

    单击窗体时,下列程序代码的执行结果为______ 。 Private Sub Test (x As Integer) x=x*2+1 If x < 6 Then Call Test(x) End If x-x*2+1 Print x; End Sub Private Sub Command1_ Click () Test 2 End Sub

    A.23 47

    B.5 11

    C.10 22

    D.23 29


    正确答案:A

  • 第5题:

    单击命令按钮时,下列程序的执行结果是 Private Sub Book( x As Integer) x=x*2+1 If x<6 Then Call Book(x) End If x=x * 2 + 1 Print x; End Sub Private Sub Command2_Click( ) Book 2 End Sub

    A.23 47

    B.10 36

    C.22 44

    D.24 50


    正确答案:A
    解析:此题在函数调用过程中采用了简单递归的方式,具体流程如下:主调过程调用Book过程,把实参2传递给Book过程中的形参x,由x=x*2+1语句推出x=5,此时满足Book过程体中判断语句的判断条件,执行Call Book(x)语句,第二次调用Book过程。由x=x*2+1语句得到x值为11,判断条件116为假,故返回此调用过程执行x=x*2+1语句得x=23并输出,结束此次调用过程。由于两次调用Book过程,第二次仍返回调用时的断点语句,即执行x=x*2+ 1,Print x,输出x的值为47,返回到主调过程,结束程序,两次输出为23 47,正确答案为选项A。注意: 递归调用法是Visual Basic中一种特殊的函数调用方法。这种函数采用嵌套调用函数本身的方式调用函数。

  • 第6题:

    以下程序运行后的输出结果是 ______。 Sub add(x,y) x=x+y Print "x=";x;",y=";y End Sub Private Sub Command1_Click() x=1 y=1 Call add((x),(y)) Print"x="; x;",y=";y End Sub

    A.x=1,y=1 x=2,y=2

    B.x=2,y=1 x=1,y=1

    C.x=1,y=1 x=1,y=1

    D.x=2,y=1 x=2,y=1


    正确答案:B
    解析:在过程调用语句中,一般不特别指明,参数是按传地址方式传递的。此题两个实际参数都用圆括号括起,表示为传值方式,形参的变化不影响实参,因此,虽然形参x变为2,在过程add中输出2,但返回事件过程后,输出x的值不受影响,为1。

  • 第7题:

    在窗体中添加一个名称为Commandl的命令按钮,然后编写如下程序: Public x As Integer Private Sub Commandl_click() x=10 Call s 1 Call s 2 MsgBOx x End Sub Pfivate Sub s1() x=x+20 End Sub Private Sub

    A.10

    B.30

    C.40

    D.50


    正确答案:B
    解析: 本题考查变量作用域的知识。在整个程序中定义了一个全局变量x,在命令按钮的单击事件中对这个x赋值为10,然后依次调用s1和s2;在s1中对x自加了20;在s2中用Dim定义了一个局部变量 x,按照局部覆盖全局的原则,在s2中的操作都是基于局部变量x而不是全局变量x。故此最终的输出结果为30。

  • 第8题:

    单击命令按钮时,下列程序的执行结果是 Private Sub Book(x As Integer) x=x * 2 + l If x<6 Then Call Book(x) End If X=X * 2 + 1 Print x; End Sub Private Sub Command2_Click() Book2 End Sub

    A.23 47

    B.10 36

    C.22 44

    D.24 50


    正确答案:A
    解析:此题在函数调用过程中采用了简单递归的方式,具体流程如下:主调过程调用Book过程,把实参2传递给Book过程中的形参x,由x=x*2+1语句推出x=5,此时满足Book过程体中判断语句的判断条件,执行CallBook(x)语句,第二次调用Book过程。由x=x*2+1语句得到x值为11,判断条件1l6为假,故返回此调用过程执行x=x*2+1语句,的x=23并输出,结束此次调用过程。由于两次调用Book过程,第二次仍返回调用时的断点语句,即执行x=x*2+1,Printx,输出x的值为47,返回到主调过程,结束程序,两次输出为2347,正确答案为选项A。

  • 第9题:

    单击命令按钮,下列程序的执行结果是 Private Sub Blck (x As Integer) x = x * 2 + l If x <6 Then Call Blck(x) End If x = x * 2 + 1 Print x; End Sub Private Sub Commandl_Click() Blck 2 End Sub

    A.23 47

    B.10 36

    C.22 44

    D.24 50


    正确答案:A
    解析:考查考生对过程的理解。@解析@此题在函数调用过程中采用了简单递归的方式,具体流程如下:主调过程调用Blck过程,把实参2传递给Blck过程中的形参x,由x=x*2+1语句推出x=5,此时满足Blck过程体中判断语句的判断条件,执行CallBlck(x)语句,第二次调用Blck过程。由x=x*2+1语句得到x值为11,判断条件116为假,故返回此调用过程,执行x=x*2+l语句,的x=23并输出,结束此次调用过程。由于两次调用Blck过程,第二次仍返回调用时的断点语句,即执行x=x*2+1,Printx,输出x的值为47,返回到主调过程,两次输出为2347。

  • 第10题:

    以下能够正确计算n!的程序是( )。

    A.Private Sub Commandl_C1ick()

    B.hiVate Sub Commandl_C1ick() n=5:x=1 n=5:x=1:i=1 DO DO X=x*1 X=X*1 i=i+1 i=i+1 Loop while i<n Loop While<n Print x Ptinte x End Sub End Sub

    C.Private Sub Commandl_Click ()

    D.Pdvate Sub Commandl C1ick() n=5:X=1:i=1 n=5=:x=1:i=1 DO DO X=X*1 X=X*1 i=i+1 i=i+1 Loop While i>n Print x Print x End Sub End Sub


    正确答案:C
    解析:本题考查DoWhile语句的用法。首先我们知道n!=1×2×3×……×(n-1)×n,由于是累乘,因此x和i的初值都必须为l;其次就是循环执行条件的确定,由于使用的是While型循环,表示在满足条件时执行循环体中的代码,这里满足执行循环的条件应该是i=n。选项A和B的循环条件都是in,少了i=n的一次循环,实际上只执行了n-1次;而选项D则从i>n时才开始执行,不合题意;同时,选项B没有指定i的初值,系统会默认i;0,这也不合题意。本题正确答案为选项C。

  • 第11题:

    单击命令按钮时,下列程序的执行结果是 Private Sub Commandl_Click( ) BT 4 End Sub PriVate Sub BT(x As Integer) X=X * 2 + 1 If x <6 Then Call BT(x) End If X=x * 2 Print x; End Sub

    A.15

    B.16

    C.17

    D.18


    正确答案:D
    解析:此题在函数调用过程中采用了简单递归的方式,具体流程如下:主调过程调用BT过程,把实参4传递给BT过程中的形参x,由x=x*2+1语句推出x=9,此时不满足BT过程体中判断语句的判断条件,执行x=x*2;Printx;语句。由x=x*2语句得到x值为18并输出,结束此次调用过程,返回到主调过程结束程序,输出结果为18。

  • 第12题:

    单选题
    给定下列FORTRAN子程序如下:   SUBROUTINE SUB(K,A)   A=SQRT(K*K+1.0)   END   下列调用语句中正确的是()
    A

     CALL SUB(N,N)

    B

     CALL SUB(X,X)

    C

     CALL SUB(N,X*X)

    D

     CALL SUB(11,X)


    正确答案: B
    解析: 暂无解析

  • 第13题:

    在窗体中添加一个名称为Command1的命令按钮,然后编写如下程序: Public x As Integer Private Sub Command1_Click() x=10 Call s1 Call s2 MSgBox x End Sub Private Sub s1() x=x+20 End Sub Private Sub s2() Dim x As Integer x=X+20 End Sub 窗体打开运行后,单击命令按钮,则消息框的输出结果为______。

    A.10

    B.30

    C.40

    D.50


    正确答案:B
    解析:本题使用Call关键字调用子过程s1,s2。x=10在调用子过程s1后,x=30,但由于在s1中直接使用变量,所以该值的作用范围是局部的,即只限于s1子过程中,没有传回。在调用s2时,由于s2使用Dim...As关键字定义x,所以其值是模块范围的。故在消息框中输出的值,是从子过程s2传回的值。

  • 第14题:

    若有以下变量和函数说明:includecharCh='*';void sub(int x,int y,char ch,double*

    若有以下变量和函数说明: #include<iostream.h> charCh='*'; void sub(int x,int y,char ch,double*Z) { switch(ch) { case'+':*Z=x+y;break; case'-':*Z=x-y;break: case'*':*Z=x*y;break; case'/':*z=x/y;break: } } 以下合法的函数调用语句是( )。

    A.sub(10,20,Ch,y);

    B.sub(1.2+3,2*2,'+',&Z);

    C.sub(sub(1,2,'+',&y),sub(3,4'+',&x),'-',&y);

    D.sub(a,b,&x,ch);


    正确答案:B

  • 第15题:

    单击命令按钮时,下列程序的执行结果是 Private Sub Command1_Click() BT 4 End Sub Private Sub BT(x As Integer) x=x*2+1 If x<6 Then Call BT(x) End If x=x*2 Print x; End Sub

    A.15

    B.16

    C.17

    D.18


    正确答案:D
    解析:此题在函数调用过程中采用了简单递归的方式,具体流程如下:主调过程调用BT过程,把实参4传递给BT过程中的形参x,由x=x*2+1语句推出x=9,此时不满足BT过程中判断语句的判断条件,执行x=x*2;Print x;语句。由x=x*2语句得到x值为18并输出,结束此次调用过程,返回到主调过程结束程序,输出结果为18。

  • 第16题:

    在窗体中添加一个名称为Commandl的命令按钮,然后编写如下程序:Public X As Integer Private Sub Commandl Click( )x=10 Call slCall s2MsgBox x End Sub Private Sub sl( )x=x+20 End Sub Private Sub s2( )Dim x As Integer x=x+20End Sub窗体打开运行后,单击命令按钮,则消息框的输出结果为( )。

    A.10

    B.30

    C.40

    D.50


    正确答案:B
    B。【解析】在本题中,定义了一个全局变量X,在命令按钮的单击事件中对这个X赋值为10,然后依次调用sl和s2;在s1中对X自加了20;在s2中用Dim定义了一个局部变量x,按照局部覆盖全局的原则,在s2中的操作都是基于局部变量X而不是全局变量X。所以本题输出结果为30。

  • 第17题:

    有如下程序。 Private Sub Commandl_Click() Dim a As Single Dim b As Single a=5:b=4 Call Sub1 ( a,B)End Sub Sub Subl(x As Single, y As Single) t=x x=t\y y = t Mod y End Sub 在调用运行上述程序后,a和b的值分别为

    A.0 0

    B.1 1

    C.2

    D.1 2


    正确答案:B
    解析:调用一个过程时,必须把实际参数传送给过程,完成形式参数与实际参数的结合,然后用实际参数执行调用的过程;因为在默认的情况下,变量都是通过“引用”传送给Sub1过程,在这种情况下,可以通过改变过程中相应的参数来改变变量的值;过程 Sub1的形参获得a,b的地址,此时x=5,y=4,在过程 Sub1中,将x,即5的值赋给t,而将t\y的值赋给x,将t除以y的余数赋给y,此时x,y的值为1,1。注意: 调用通用过程可以返回多个参数值。注意:过程调用、参数传递

  • 第18题:

    有如下自定义过程: Sub test(x As Integer) x =X *2+1 If x<6 Then Call test(x) End If x=x* 2 + 1 Print x; End Sub调用该过程的事件过程如下:Private Sub Command1_Click() test 2End Sub则该段程序的执行结果是______ 。

    A.12

    B.23 47

    C.23

    D.5 10


    正确答案:B

  • 第19题:

    在窗体中添加一个名称为Command1的命令按钮,然后编写如下程序: Public x As Integer Private Sub Command1_Click() x=10 Call s1 Call s2 MsgBox x End Sub Private Sub sl() x=x+20 End Sub Private Sub s2() Dim x As Integer x=x+20 End Sub 窗体打开运行后,单击命令按钮,则消息框的输出结果为( )。

    A.10

    B.30

    C.40

    D.50


    正确答案:B
    解析: 本题考查变量作用域的知识。在整个程序中定义了一个全局变量x,在命令按钮的单击事件中对这个x赋值为10,然后依次调用s1和s2;在s1中对x自加了20;在s2中用Dim定义了一个局部变量x,按照局部覆盖全局的原则,在s2中的操作都是基于局部变量x而不是全局变量x。故此最终的输出结果为30。

  • 第20题:

    在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程: Private Sub sub1(ByVal x As Integer, ByVal y As Integer, ByVal z As Integer) z=x * x+ y * y End Sub Private Sub Command1_Click() Dim a As Integer a = 8 Call sub1(1, 2,A)Print a End Sub 程序运行后,单击命令按钮,则窗体上显示的内容是

    A.8

    B.2

    C.5

    D.11


    正确答案:A
    解析:因为sub1过程的形参都是传值传送,所以在其内的所有计算结果都将不返回,并不影响对应的实参值,变量a的值并没有改变,仍旧是8。

  • 第21题:

    运行下列程序:

    Dim x, y

    Private Sub Form_Click( )

    x = 1: y = 1: z = 1

    fun1 (1)

    Print x; y; z

    End Sub

    Private Sub fun1(a)

    x = a + x: y = a + x: z = a + y

    End Sub

    单击窗体后,则输出结果是( )。

    A.1 1 1

    B.2 3 1

    C.2 3 4

    D.2 2 1


    正确答案:B

  • 第22题:

    在窗体上画一个名称为Commandl的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim x As Integer,y As Integer x = 41: y = 54 Call sub1(x,y) x = x + 1 Print x; y End Sub Private Sub sub1(n As Integer, ByVal m As Integer) n=n Mod 10 m=m\10 End Sub 程序运行后,单击命令按钮,则窗体上显示的内容是

    A.41 54

    B.2 54

    C.1 3

    D.42 3


    正确答案:B
    解析:在Function((参数表列))过程中,“参数表列”指明了调用时传送给过程的参数类型和个数,每个参数的格式为:[ByVal][ByRef]变量名[()][As数据类型]其中系统默认为ByRef,它指明参数传送是以传地址进行的,实际参数变量的值会由于过程中对形参的操作而改变。而ByVal则不同,参数传送,是以传值传送的,实际参数变量的值不再由于过程中对形参的操作而改变,本题目中过程sub1的参数n是传地址引用,而参数m是传值引用,因此x的值改变,x=21\10+1=2;而y值不改变,仍为54。答案为选项B。

  • 第23题:

    有如下Sub过程:

    Sub ind(a As Integer)

    Static x As Integer

    x= x + a

    Print x:

    End Sub

    以下是调用它的事件过程,程序运行后,单击命令按纽Command1三次,输出结果为【 】。

    Private Sub Command1_Click()

    Ind 2

    End Sub


    正确答案:6
    6

  • 第24题:

    单选题
    给定子例行程序如下  SUBROUTINE SUB(K,A)  B=K+2  A=A+B END 下列调用语句中正确的是()
    A

    CALL SUB(N,N)

    B

    CALL SUB(X,X)

    C

    CALL SUB(N+2,X)

    D

    CALL SUB(N,X+3)


    正确答案: B
    解析: 暂无解析