题目链接
敏敏学姐已经一学期没上体育课了,她现在必须想办法通过这门课。正规的方法显然是不行了,敏敏学姐开始想各种歪门邪道。她不知从哪里搞来了一张当地医院的空白证明,于是她模仿医生的笔迹填满了整张证明(请勿模仿),现在问题来了,敏敏学姐突然发现医生的签名很难模仿。
我们将签名区域简化为 n×m 个方格,敏敏学姐有一支能够填满 3×3 (除去中心)区域的笔 ,见下图(其中x为涂色区域,. 为空白区域)
xxx
x.x
xxx
敏敏学姐想让你帮她确定医生的签名是否可以伪造。
Input
第一行包含两个正整数 n 和 m (3 ≤ n, m ≤ 1000)。
接下来的n行,每行有m个字符。其中 ‘.‘代表空白区域,’#’ 代表涂色区域。
Output
如果敏敏学姐可以伪造签名,输出 “YES”。否则就输出 “NO”。
大小写都可以。
Examples
Input
3 3
#.#
Output
YES
Input
3 3
Output
NO
Input
4 3
Output
YES
Input
5 7
…
.#####.
.#.#.#.
.#####.
…
Output
YES
Note
第一个样例中,敏敏学姐可以以(2, 2)为中心涂色。
第二个样例中,无论敏敏学姐怎么涂色都不行。
第三个样例中,敏敏学姐可以以 (2, 2) 和 (3, 2) 为中心涂色:
一开始为空白纸:
…
…
…
…
以 (2, 2) 为中心涂色
#.#
…
以 (3, 2) 为中心涂色
第四个样例中,敏敏学姐可以以 (3, 3) 和 (3, 5) 为中心涂色。
题目描述
已知笔能涂出规定的图形,看该图形是否能将需要的给涂色出来
思路:判断是否能够涂出输入的图案,那么我们就根据这支笔所能涂的图案将输入的图案在涂一遍,比较是否相同(注意这里只能从内部涂,边界处不能涂),这里重新涂色将原来记录的1变为2,之后遍历,如果还存在1,说明不能涂出来这种图形
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int a[1010][1010];
int ju(int x, int y