#578. 寻宝!大冒险!

    ID: 578 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 普及− 上传者: 标签>CCF CSP认证第 26 次CCF CSP软件能力认证基础算法模拟

寻宝!大冒险!

问题描述

暑假要到了。可惜由于种种原因,小 P 原本的出游计划取消。失望的小 P 只能留在西西艾弗岛上度过一个略显单调的假期……直到……某天,小 P 获得了一张神秘的藏宝图。

西西艾弗岛上种有 nn 棵树,这些树的位置记录在一张绿化图上。简单地说,绿化图可以视作一个大小为 (L+1)×(L+1)(L+1)\times(L+1) 的 0101 矩阵 AA,地图左下角(坐标 (0,0)(0,0))和右上角(坐标 (L,L)(L,L))分别对应 A[0][0]A[0][0] 和 A[L][L]A[L][L]。其中 A[i][j]=1A[i][j]=1 表示坐标 (i,j)(i,j) 处种有一棵树,A[i][j]=0A[i][j]=0 则表示没有树。矩阵 AA 中有且仅有的 nn 个 11 展示了西西艾弗岛上 nn 棵树的位置。

传说宝藏就埋在某棵树下。顿顿从绿化图 AA 中剪下一小块,制作成藏宝图 BB。藏宝图可以看作大小为 (S+1)×(S+1)(S+1)\times(S+1) 的 0101 矩阵 BB(SS 远小于 LL),对应着 AA 中的某一部分。

若存在坐标 (x,y)(x,y)(0≤x,y≤L−S0\le x,y\le L-S)使得对任意 (i,j)(i,j)(0≤i,j≤S0\le i,j\le S)都有

A[x+i][y+j]=B[i][j],A[x+i][y+j]=B[i][j],

则称藏宝图 BB 对应绿化图 AA 中左下角为 (x,y)(x,y)、右上角为 (x+S,y+S)(x+S,y+S) 的区域。由于藏宝图只描绘很小范围,此类符合条件的坐标 (x,y)(x,y) 可能存在多个。

请结合绿化图中 nn 棵树的位置以及小 P 手中的藏宝图,判断绿化图中有多少处坐标可以与藏宝图左下角对应(特别地,藏宝图左下角一定是一棵树,即 A[x][y]=B[0][0]=1A[x][y]=B[0][0]=1,表示宝藏可能埋藏的位置)。

输入格式

第一行包含三个正整数 n,L,Sn,L,S,分别表示树的棵数、绿化图和藏宝图的大小。

接下来 nn 行,每行包含两个整数 xx 和 yy(0≤x,y≤L0\le x,y\le L),表示一棵树的坐标。输入中只给出这 nn 棵树的位置(坐标不会重复)。

最后 (S+1)(S+1) 行输入藏宝图 BB,第 ii 行(0≤i≤S0\le i\le S)包含 (S+1)(S+1) 个 00 或 11,表示

B[S−i][0]  B[S−i][1]  …  B[S−i][S].B[S-i][0]\ \ B[S-i][1]\ \ \dots\ \ B[S-i][S].

也就是说,最先输入的是 B[S][0]…B[S][S]B[S][0]\dots B[S][S](藏宝图的顶行),最后输入的是 B[0][0]…B[0][S]B[0][0]\dots B[0][S](藏宝图的底行)。

输出格式

输出一个整数,表示绿化图中有多少处坐标 (x,y)(x,y)(满足 0≤x,y≤L−S0\le x,y\le L-S)可以与藏宝图左下角对应(即满足对所有 0≤i,j≤S0\le i,j\le S 有 A[x+i][y+j]=B[i][j]A[x+i][y+j]=B[i][j] 且 B[0][0]=1B[0][0]=1)。

输入样例 1

5 100 2
0 0
1 1
2 2
3 3
4 4
0 0 1
0 1 0
1 0 0

输出样例 1

3

输入样例 2

5 4 2
0 0
1 1
2 2
3 3
4 4
0 0 0
0 1 0
1 0 0

输出样例 2

0

说明

样例 1 解释:

绿化图上 (0,0),(1,1),(2,2)(0,0), (1,1), (2,2) 三处均可能埋有宝藏。

样例 2 解释:

若将藏宝图左下角与绿化图 (3,3)(3,3) 处对应,则藏宝图右上角会超出绿化图边界,不计入;因此没有匹配位置。

数据范围

  • 40%40\% 的测试数据满足:L≤50L\le 50。
  • 70%70\% 的测试数据满足:L≤2000L\le 2000。
  • 全部测试数据满足:n≤1000n\le 1000、L≤109L\le 10^9 且 S≤50S\le 50。