AcWing 462. 扫雷游戏
原题链接
简单
作者:
HiCode_001
,
2019-11-06 18:48:23
,
所有人可见
,
阅读 695
题意分析:
对于输入的n*m的邻接矩阵进行判断,输出每一个格子8个方向的地雷数
考察知识点:
枚举
时间复杂度:
0(n^2)
分析思路:
1)枚举每一个格子,如果为“*”直接输出,否则枚举当前格子的八个方向的位置上是否有地雷,计数输出
细节及技巧:
1)枚举8个方向,i-1<=x<=i+1,j-1<=y<=j+1;
2)注意边界的判断
#include <iostream>
using namespace std;
const int N = 110;
int n,m;
char v[N][N];
int main(){
int n,m;
cin >> n >> m;
for(int i = 1; i<=n; i++){
for(int j = 1; j<=m; j++){
cin >> v[i][j];
}
}
for(int i = 1; i<=n;i++){
for(int j = 1; j<= m; j++){
if(v[i][j]=='*') cout << '*';
else{
int sum = 0;
for(int x = i-1; x<=i+1; x++){
for(int y = j-1; y<=j+1; y++){
if(x!=i||y!=j){
if(x>0&&x<=n&&y>0&&y<=m&&v[x][y]=='*') sum++;
}
}
}
cout << sum;
}
}
cout << endl;
}
return 0;
}