#include<bits/stdc++.h>
using namespace std;
const int N=1010;
int dx[]={1,0,-1,0};
int dy[]={0,-1,0,1};
char a[N][N];
bool v[N][N];
int n,m,k;
void dfs(int x,int y){
v[x][y]=1;
for(int l=0;l<4;l++){
int tx=x+dx[l];
int ty=y+dy[l];
if(tx >= 0 && tx < n && ty >= 0 && ty < m && a[tx][ty]=='.'&& v[tx][ty]==0 ){
v[tx][ty]=1;
a[tx][ty]='g';
}
}
return;
}
int main(){
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>a[i][j];
}
}
cin>>k;
while(k--){
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(a[i][j]=='g'&&v[i][j]==0){//必须是草,而且没有被访问过
dfs(i,j);
}
}
}
memset(v,0,sizeof(v));//将状态数组清空
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cout <<a[i][j];
}
cout<<endl;
}
return 0;
}
蓝桥:149长草
最新推荐文章于 2024-08-27 09:16:55 发布