扫雷
蓝桥杯每日一题 2024-12-20 扫雷 暴力搜索
题目大意
在一个 n 行 m 列的方格图上有一些位置有地雷,另外一些位置为空。
请为每个空位置标一个整数,表示周围八个相邻的方格中有多少个地雷。
解题思路
今天算是水了一道暴力搜索题,还是接着滚回去写线段树吧!
这个题直接搜就行了,只有100 的数据量,还要什么bike
Accepted
#include <iostream>using namespace std;
const int N = 110;
int a[N][N],b[N][N];
int n,m;
int dx[8] = {-1,-1,-1,0,1,1,1,0};
int dy[8] = {-1,0,1,1,1,0,-1,-1};void bfs(int x,int y) {int k = 0;for(int i = 0;i < 8;i++) {int xx = dx[i] + x,yy = dy[i] + y;if(xx >= 1 && xx <= n && yy >= 1 && y <= m && a[xx][yy]) {k ++;}}if(a[x][y]) {b[x][y] = 9;} else {b[x][y] = k;}
}int main()
{cin>>n>>m;for(int i = 1;i <= n;i++) {for(int j = 1;j <= m;j++) {cin>>a[i][j];}}for(int i = 1;i <= n;i++) {for(int j = 1;j <= m;j++) {bfs(i,j);}}for(int i = 1;i <= n;i++) {for(int j = 1;j <= m;j++) {cout<<b[i][j]<<" ";}cout<<endl;}return 0;
}