首页 > 试题广场 >

(子矩阵)输入一个n1*m1的矩阵a,和n2*m2的矩阵b,

[填空题]
(子矩阵)输入一个n1*m1的矩阵a,和n2*m2的矩阵b,问a中是否存在子矩阵和b相等。若存在,输出所有子矩阵左上角的坐标;若不存在输出“There is no answer”。

Const
  SIZE = 50;
Var
  n1, m1, n2, m2, i, j, k1, k2 : Integer;
  a, b : Array[1..SIZE, 1..SIZE] Of Integer;
  good, haveAns : Boolean;
Begin
  Readln(n1, m1);
  For i := 1 To n1 Do
    For j := 1 To m1 Do
      Read(a[i][j]);
  Readln(n2, m2);
  For i := 1 To n2 Do
    For j := 1 To m2 Do
    1;
  haveAns := FALSE;
  For i := 1 To n1 - n2 + 1 Do
    For j := 1 To     2     Do
    Begin
      3;
      For k1 := 1 To n2 Do
        For k2 := 1 To     4     Do
          If a[i + k1 - 1][j + k2 - 1] <> b[k1][k2] Then
            good := FALSE;
      If good Then
      Begin
        Writeln(i, ' ', j);
        5;
      End;
    End;
  If NOT haveAns Then
    Writeln('There is no answer');
End.

这道题你会答吗?花几分钟告诉大家答案吧!