注:1. 列举搜索方位dx,dy
2. 借助队列queue<>
3. 出队,入队操作
题目1:P2670 [NOIP2015 普及组] 扫雷游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
代码:
#include<bits/stdc++.h>
using namespace std;
char c[105][105];
//代表八个方位
int dx[]={0,-1,-1,-1,0,1,1,1};
int dy[]={-1,-1,0,1,1,1,0,-1};
int n,m;
void count(int x,int y)
{
int cnt=0;
//遍历八个方位
for(int i=0;i<8;i++)
{
int nx=x+dx[i];
int ny=y+dy[i];
if(nx>=0&&nx<n&&ny>=0&&ny<m&&c[nx][ny]=='*')
cnt++;
}