zoukankan      html  css  js  c++  java
  • 深搜基础题目 杭电 HDU 1241

    HDU 1241 是深搜算法的入门题目,递归实现。

    原题目传送门: 

    http://acm.hdu.edu.cn/showproblem.php?pid=1241

    代码仅供参考,c++实现:

    #include <iostream>
    using namespace std;
    
    char land[150][150];
    int p,q;
    
    void dfs(int x,int y){
        land[x][y] = '*';
        if(land[x-1][y]!= '@' && land[x+1][y] != '@' && land[x][y-1] != '@' && land[x][y+1] != '@' && land[x-1][y+1]!= '@' && land[x+1][y-1] != '@' && land[x-1][y-1] != '@' && land[x+1][y+1] != '@')
            return ;
        
        if(x+1 > 0 && y+1 > 0 && x+1 <= p && y+1 <= q && land[x+1][y+1]== '@') { dfs(x+1,y+1);  }
        if(x+1 > 0 && y-1 > 0 && x+1 <= p && y-1 <= q && land[x+1][y-1]== '@') { dfs(x+1,y-1);  }
        if(y-1 > 0 && x-1 > 0 && x-1 <= p && y-1 <= q && land[x-1][y-1]== '@') { dfs(x-1,y-1);  }
        if(y+1 > 0 && x-1 > 0 && x-1 <= p && y+1 <= q && land[x-1][y+1]== '@') { dfs(x-1,y+1);  }
        
        if(x+1 > 0 && y > 0 && x+1 <= p && y <= q && land[x+1][y]== '@') { dfs(x+1,y);  }
        if(x-1 > 0 && y > 0 && x-1 <= p && y <= q && land[x-1][y]== '@') { dfs(x-1,y);  }
        if(y-1 > 0 && x > 0 && x <= p && y-1 <= q && land[x][y-1]== '@') { dfs(x,y-1);  }
        if(y+1 > 0 && x > 0 && x <= p && y+1 <= q && land[x][y+1]== '@') { dfs(x,y+1);  }
       
        return ;
    }
    int main(int argc, const char * argv[]) {
        
        int num;
        cin>>p>>q;
        while(p>0 && q>0){
        
                num = 0;
                for(int i = 1; i <= p ;i++){
                    for(int j = 1; j<= q; j++){
                        cin>>land[i][j];
                    }
                }
                for(int i = 1; i <= p ;i++){
                    for(int j = 1; j<= q; j++){
                        if(land[i][j] == '@'){
                            num++;
                            dfs(i,j);
                        }
                        
                    }
                }
                cout<< num<<endl;
            cin>>p>>q;
        }
        return 0;
    }
  • 相关阅读:
    使用Index()+Match()函数实现更为灵活的VLookUp()
    Hexo搭建博客笔记
    Jenkins自动化部署项目
    Ubuntu安装docker
    Ubuntu的简单使用
    ansible之Ad-Hoc
    redis的集群
    redis的主从复制和哨兵
    redis的持久化存储
    redis数据库基础
  • 原文地址:https://www.cnblogs.com/sweetiemelody/p/4296824.html
Copyright © 2011-2022 走看看