扫雷(minesweeper)
【题目描述】S66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
小林最近迷上了扫雷游戏,具体的,一个扫雷游戏棋盘可以被抽象成一个n行m列的包含 0-8 的数字、字符“*”和字符“?”的二维矩阵,字符“*”表示当前位置有一个地雷,字符“?”表示还不确定当前位置是否有地雷,数字表示与该位置有交点的八个位置中有多少地雷,若数字与周围的地雷数量不符,即视为该棋盘不合法。现在给出二维矩阵用以表示一场扫雷游戏棋盘,你可以选择字符“?”所在的格子是否有地雷,请问是否存在一种方案使得二维矩阵合法?S66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
【输入格式】S66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
第一行包含一个正整数T,表示共有T组数据。S66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
对于每组数据,第一行两个正整数n,m,表示棋盘大小。S66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
接下来n行,每行输入一个长度为m的仅包含0-8 的数字、字符“*”和字符“?”的字符串,用以表示扫雷游戏的棋盘。S66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
【输出格式】S66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
输出T行,每行对应一组数据,如果存在一种方案使得棋盘合法,则输出YES,否则输出 NO。S66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
【样例输入1】S66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
3S66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
2 2S66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
**S66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
2?S66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
2 2S66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
*1S66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
3?S66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
2 2S66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
**S66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
21S66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
【样例输出1】S66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
YESS66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
NOS66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
NOS66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
【数据范围与约定】S66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
对于 20%的数据,仅有一个位置的字符为“?”。S66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
对于100%的数据,1≤T,n,m≤10 保证字符“?”的数量≤10。S66100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库