luogu#P9445. [ICPC2021 WF] Mosaic Browsing
[ICPC2021 WF] Mosaic Browsing
题目描述
The International Center for the Preservation of Ceramics (ICPC) is searching for motifs in some ancient mosaics. According to the ICPC's definition, a is a rectangular grid where each grid square contains a colored tile. A is similar to a mosaic but some of the grid squares can be empty. Figure G.1 shows an example motif and mosaic.
The rows of an mosaic are numbered to from top to bottom, and the columns are numbered to from left to right.
A contiguous rectangular subgrid of the mosaic matches the motif if every tile of the motif matches the color of the corresponding tile of the subgrid. Formally, an motif appears in an mosaic at position (, ) if for all , , the tile (, ) exists in the mosaic and either the square (, ) in the motif is empty or the tile at (, ) in the motif has the same color as the tile at (, ) in the mosaic.
Given the full motif and mosaic, find all occurrences of the motif in the mosaic.
Figure G.1: Motif (left) and mosaic (right) of Sample Input 1.
输入格式
The first line of input contains two integers and , where and () are the number of rows and columns in the motif. Then lines follow, each with integers in the range , denoting the color of the motif at that position. A value of denotes an empty square.
The next line of input contains two integers and where and () are the number of rows and columns in the mosaic. Then lines follow, each with integers in the range , denoting the color of the mosaic at that position.
输出格式
On the first line, output , the total number of matches. Then output lines, each of the form where is the row and is the column of the top left tile of the match. Sort matches by increasing , breaking ties by increasing .
题目大意
简要题意
给出两个矩阵, 其中第二个矩阵所有元素非 .
定义第一个矩阵在第二个矩阵中的坐标 处「出现」, 当且仅当存在一种方式任意修改第一个矩阵所有为 的元素后, 第一个矩阵的左上角在第二个矩阵的对应位置坐标为 时可以与第二个矩阵的一部分完全重合.
求第一个矩阵在第二个矩阵中所有「出现」的位置和总「出现」次数。
输入格式
第一行, 两个整数 , 表示第一个矩阵的行数和列数.
接下来 行, 每行 个整数, 描述第一个矩阵.
接下来一行, 两个整数 , 表示第二个矩阵的行数和列数.
接下来 行,每行 个整数, 描述第二个矩阵.
输出格式
第一行, 一个整数 , 表示「出现」的总次数.
接下来 行, 每行两个整数 , 表示每一次「出现」的坐标. 如果有多个, 请以 为第一关键字, 为第二关键字升序排序后输出。
2 2
1 0
0 1
3 4
1 2 1 2
2 1 1 1
2 2 1 3
3
1 1
1 3
2 2