• 颓废多日后醒来。。。。。dfs填色问题


    #include<iostream>
    using namespace std;
    int a[32][32],b[32][32],n;
    int dx[5]={0,0,0,-1,1},dy[5]={0,1,-1,0,0};
    void dfs(int x,int y)
    {
    if(x<0||x>n+1||y<0||y>n+1||b[x][y]!=0)   //为什么是   < 0和  > n+1   呢?为防止在dfs(1,1)时就撞墙停下,在map外面加了一圈0,保证可以进行!
    return ;
    else
    {
    b[x][y]=1;
    for(int i=1;i<=4;i++)
    dfs(x+dx[i],y+dy[i]);
    }
    }

    int main()
    {
    cin>>n;
    for(int i=1;i<=n;i++)
    for(int j=1;j<=n;j++)
    {
    cin>>a[i][j];
    b[i][j]=a[i][j];
    }
    dfs(0,0);
    for(int i=1;i<=n;i++)
    {
    for(int j=1;j<=n;j++)
    {
    if(b[i][j]==0)
    cout<<2<<' ';
    else if(j==n)
    cout<<a[i][j];
    else
    cout<<a[i][j]<<' ';
    }
    cout<<endl;
    }
    }

  • 相关阅读:
    apt-get
    微博
    字符串操作
    fly
    Oracle数据库只Dual表
    如何配置一个Oracle服务
    排序算法
    排序算法
    排序算法
    ArcEngine几个空间操作
  • 原文地址:https://www.cnblogs.com/poo7/p/11745512.html
Copyright © 2020-2023  润新知