1 条题解
-
0
#include<bits/stdc++.h> using namespace std; long long n,m; long long dx[4]={1,-1,0,0},dy[4]={0,0,-1,1},vis[1007][1007]; char a[1007][1007]; struct node{ int xx,yy; }; queueq; void bomb(int x,int y,int c,int step) { a[x][y]='.'; for(int i=0;i<4;i++) { long xxx=x+dx[i],yyy=y+dy[i]; if(step+1<=c&&xxx<=n&&xxx>0&&yyy<=m&&yyy>0&&vis[xxx][yyy]==0) { vis[xxx][yyy]=1; bomb(xxx,yyy,c,step+1); } } return; } int main() { ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); cin>>n>>m; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { cin>>a[i][j]; if(a[i][j]>='1'&&a[i][j]<='9') { q.push({i,j}); } } } while(!q.empty()) { node now=q.front(); q.pop(); vis[now.xx][now.yy]=1; bomb(now.xx,now.yy,a[now.xx][now.yy]-'0',0); a[now.xx][now.yy]='.'; } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { cout<<a[i][j]; } cout<<endl; } }
信息
- ID
- 380
- 时间
- 1500ms
- 内存
- 512MiB
- 难度
- 4
- 标签
- 递交数
- 20
- 已通过
- 1
- 上传者