zoukankan      html  css  js  c++  java
  • HDU 1241

    这是我做过最简单的一道搜索题了、可我开始想的时候觉得特别复杂......    - - 好吧、 我确实是很水

    题意:输入一张地图,@代表油田,如果一个@周边8个方向存在@,那么它就是一个油田,对于每个数据输出总的油田数

    思路:深搜,每找到一个油田就往其他8个方向搜;

     1 #include<iostream>
     2 #include<cstring>
     3 using namespace std;
     4 const int qq=100+10;
     5 char map[qq][qq];
     6 int n,m;
     7 void dfs(int y,int x)
     8 {
     9     if(x<0||y<0||x>=m||y>=n||map[y][x]!='@')    return;    //不为@就可以直接返回了 
    10     else{                                    //否则往八个方向继续找 
    11         map[y][x]='*';            //如果为@就要标记一下,不能在这个地方继续找了 
    12         dfs(y+1,x);    
    13         dfs(y-1,x);
    14         dfs(y,x+1);
    15         dfs(y,x-1);
    16         dfs(y-1,x+1);
    17         dfs(y-1,x-1);
    18         dfs(y+1,x+1);
    19         dfs(y+1,x-1);
    20     }
    21     return;
    22 }
    23 int main()
    24 {
    25     while(cin >> n >> m&&(n||m)){
    26         int tot=0;
    27         for(int i=0;i<n;++i)
    28             for(int j=0;j<m;++j)
    29                 cin >> map[i][j];
    30         for(int j,i=0;i<n;++i)
    31             for(j=0;j<m;++j)
    32                 if(map[i][j]=='@'){
    33                     dfs(i,j);
    34                     ++tot;
    35                 }
    36         cout << tot << endl;
    37     }
    38 }
  • 相关阅读:
    DapperExtensions 使用教程
    C#事件订阅及触发例子
    01、类与结构的区别
    内网信息搜集
    Anydesk拿下远程桌面
    C++对注册表的操作
    Linux下常见流编辑器的使用
    Typecho1.1反序列化漏洞复现
    Nmap脚本编写
    Github学习
  • 原文地址:https://www.cnblogs.com/sasuke-/p/5136815.html
Copyright © 2011-2022 走看看