hdu 1241 Oil Deposits (一次dfs搞定有某有)

简介:

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
char map[105][105];

int dir[8][2]={0, 1, 1, 0, -1, 0, 0, -1, 1, 1, 1, -1, -1, 1, -1, -1};
int n, m;
int ans;

bool judge(int x, int y){
      if(x<1 || x>n || y<1 || y>m) return false;
      return true;
}

void dfs(int x, int y, bool flag){

   if(map[x][y]=='@'){
          map[x][y]='*';
          ++ans;
       for(int i=0; i<8; ++i){
             int xx=x+dir[i][0], yy=y+dir[i][1];
             if(judge(xx, yy) && map[xx][yy]=='@'){
                  --ans;
             dfs(xx, yy, 1);
          }
       }
       if(flag)  return;//flag==1表明没有将油田搜索完毕
   }
   
   for(int i=0; i<8; ++i){
          int xx=x+dir[i][0], yy=y+dir[i][1];  
            if(judge(xx, yy) && map[xx][yy]!='#'){
              if(map[xx][yy]=='*')
                 map[xx][yy]='#';
              dfs(xx, yy, 0);
          }
   }
}

int main(){
    while(cin>>n>>m && (n||m)){
        for(int i=1; i<=n; ++i)
           cin>>(map[i]+1);
        ans=0;
        dfs(1, 1, 0);
        cout<<ans<<endl;
    }
    return 0;
}

目录
相关文章
|
3月前
|
SQL 人工智能 Linux
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
362 5
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
|
4月前
|
数据建模 应用服务中间件 PHP
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
本示例演示如何通过Docker挂载同一宿主目录至Nginx与PHP容器,实现PHP项目运行环境配置。需注意PHP容器中监听地址修改为0.0.0.0:9000,并调整Nginx配置中fastcgi_pass指向正确的IP与端口。同时确保Nginx容器中/var/www/html权限正确,以避免访问问题。
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
|
4月前
|
Ubuntu Unix Linux
操作系统的最强入门科普(Unix/Linux篇)
下期文章,小枣君会重点聊聊Windows和macOS那条线。敬请关注! 如果大家觉得文章不错,还请帮忙多多转发!谢谢!
|
运维 监控 负载均衡
探索微服务架构下的服务治理:动态服务管理平台深度解析
探索微服务架构下的服务治理:动态服务管理平台深度解析
|
9月前
|
人工智能 运维 API
云栖大会 | Terraform从入门到实践:快速构建你的第一张业务网络
云栖大会 | Terraform从入门到实践:快速构建你的第一张业务网络
388 1
|
12月前
|
人工智能 分布式计算 大数据
MaxFrame 产品评测
MaxFrame 是一款连接大数据和 AI 的 Python 分布式计算框架。本文介绍了其在实际使用中的表现,包括便捷的安装配置、强大的分布式 Pandas 处理能力和高效的大语言模型数据处理。文章还对比了 MaxFrame 与 Apache Spark 和 Dask 的优劣,并提出了未来发展的建议,旨在为读者提供全面的评测参考。
262 22
|
运维 安全 Linux
全面提升系统安全:禁用不必要服务、更新安全补丁、配置防火墙规则的实战指南
全面提升系统安全:禁用不必要服务、更新安全补丁、配置防火墙规则的实战指南
589 12
|
网络协议 Java 程序员
【网络】局域网LAN、广域网WAN、TCP/IP协议、封装和分用
【网络】局域网LAN、广域网WAN、TCP/IP协议、封装和分用
618 2
|
Linux 数据库
在Linux中,什么是冷备份和热备份?
在Linux中,什么是冷备份和热备份?
在Linux中,如何检查磁盘空间使用情况?
在Linux中,如何检查磁盘空间使用情况?