长草

长草_第1张图片

4 5
.g…

…g…

2

在这里插入图片描述

gggg.
gggg.
ggggg
.ggg.

长草_第2张图片

#include 
using namespace std;int r,l;char arr[1005][1005];int t;char dp[1005][1005];
int dx[4]={0,0,1,-1},dy[4]={1,-1,0,0};
void dfs(int x,int y)
{
  for(int i=0;i<4;i++)
  {
    int a=x+dx[i];int b=y+dy[i];
    if(a<1||a>r||b<1||b>l)continue;//return是不对的 
    if(arr[a][b]=='.')dp[a][b]='g';
  }
}
int main()
{
  cin>>r>>l;
  for(int i=1;i<=r;i++)
  {
    for(int j=1;j<=l;j++)
    {
      cin>>arr[i][j];
    }
  } 
  for(int i=1;i<=r;i++)
  {
    for(int j=1;j<=l;j++)
    {
      dp[i][j]=arr[i][j];
    }
  }
  cin>>t;
  for(int i=1;i<=t;i++)
  {
    for(int i=1;i<=r;i++)
    {
      for(int j=1;j<=l;j++)
      {
        if(arr[i][j]=='g')
        {
          dfs(i,j);
        } 
      }
    }
    for(int i=1;i<=r;i++)
    {
        for(int j=1;j<=l;j++)
        {
            arr[i][j]=dp[i][j];
        }
    }
  }
  for(int i=1;i<=r;i++)
  {
    for(int j=1;j<=l;j++)
    {
      cout<<arr[i][j];
    }
    cout<<endl;
  } 
  
  return 0;
}

你可能感兴趣的:(#,蓝桥杯,深度优先,算法,图论)