• hdu 1241Oil Deposits(dfs模板)


    题目链接——

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

    首先给出一个n*m的字符矩阵,‘*’表示空地,‘@’表示油井。问在这个矩阵中有多少组油井区?

    每个点周围的8个点都可以与之相连。

    从左上角的点开始向后枚举然后dfs搜索就可以了。记得记忆化。

    废话说完,上代码——

     1 #include <cstdio>
     2 #include <cmath>
     3 #include <cstring>
     4 #include <algorithm>
     5 using namespace std;
     6 
     7 const int N = 210;
     8 const int M = 8;
     9 
    10 int dis[M][2] = {{-1, -1}, {-1, 0}, {-1, 1}, {0, -1}, {0, 1}, {1, -1}, {1, 0}, {1, 1}}; //判断8个方向
    11 char mp[N][N];  //原图
    12 int n, m;       //矩阵大小
    13 int ans;        //结果
    14 
    15 void dfs(int x, int y)  //dfs搜索函数
    16 {
    17     mp[x][y] = '*';         //当前点初处理后需要将它消掉,免得重复处理,即“记忆化”
    18     for(int i = 0; i < M; i++)
    19     {
    20         int mx = x+dis[i][0];
    21         int my = y+dis[i][1];
    22         if(mx >= 0 && mx < n && my >= 0 && my < m && mp[mx][my] == '@') dfs(mx, my);
    23     }
    24 }
    25 
    26 void Work()             //主处理函数
    27 {
    28     for(int i = 0; i < n; i++)
    29     {
    30         for(int j = 0; j < m; j++)
    31         {
    32             if(mp[i][j] == '@')
    33             {
    34                 ans++;
    35                 dfs(i, j);
    36             }
    37         }
    38     }
    39 }
    40 
    41 void Init()             //初始化函数
    42 {
    43     getchar();
    44     for(int i = 0; i < n; i++) scanf("%s", mp[i]);
    45     ans = 0;
    46 }
    47 
    48 void Outit()            //输出函数
    49 {
    50     printf("%d
    ", ans);
    51 }
    52 
    53 int main()
    54 {
    55     //freopen("test.in", "r", stdin);
    56     while(~scanf("%d%d", &n, &m) && m)
    57     {
    58         Init();
    59         Work();
    60         Outit();
    61     }
    62     return 0;
    63 }
    View Code
  • 相关阅读:
    C#将数据库导出成Excel,再从Excel导入到数据库中。
    C#连接SQL server2008数据库
    Spring session共享问题 将session放入redis(转)
    nginx服务(转)
    数据库索引知识点(转)
    快速打开电脑计算器
    js的json使用
    支付宝的帮你投 长时间看收益
    axure 获取团队项目svn 修改帐号
    育儿书单-樊登读书会
  • 原文地址:https://www.cnblogs.com/mypride/p/5459751.html
Copyright © 2020-2023  润新知