lanqiao OJ141 穿越雷区

简介: lanqiao OJ141 穿越雷区

1.穿越雷区 - 蓝桥云课 (lanqiao.cn)

这个题没什么难度,bfs搜索路径,多了一个方向的遍历条件,找到A点和B点的位置,记录下来,

然后用bfs搜索,1.mp[x][y] !=mp[tx][ty] ,就是要求当前的位置的字符和马上要走到的位置的字符不能相同。

#include<iostream>
#include<string>
#include<algorithm>
#include<queue>
 
using namespace std ;
const int N = 110 ;
int n ;
int fx,fy ;
char mp[N][N];
bool v[N][N] ;
int d[4][2] = {{0,1},{0,-1},{1,0},{-1,0}} ;
struct node{//用于记录存入队列的点的位置,和走了多少步才到了这里。
  int x , y , dis ;
  node(int xx , int yy  ,int diss){
    x = xx , y = yy  , dis = diss ; 
  } 
};
queue<node> q ;
 
void bfs(){
  while(!q.empty()){
    node now = q.front() ;
    q.pop() ;
    int x = now.x , y = now.y  , dis = now.dis ;
    if(x==fx&&y==fy){
      cout << dis << endl ; return ;
    }
    for(int i = 0 ; i < 4 ; i ++){
      int tx = x + d[i][0] , ty = y + d[i][1] ;
      if(tx<0 || tx >= n || ty < 0 || ty >= n ||(mp[tx][ty] == mp[x][y]) || v[tx][ty]) continue ;//当前点的字符和马上要走的点的字符不同
        v[tx][ty] = 1 ;
        q.push(node(tx,ty,dis+1));
      
    }
  }
}
 
int main(){
  cin >> n ;
 
  for(int i = 0 ; i < n ; i ++){
    for(int j = 0; j < n ; j ++){
      cin >> mp[i][j];
      if(mp[i][j] == 'A') {
        v[i][j] = 1 ;
        q.push({i,j,0}) ;
      }
      if(mp[i][j] == 'B') fx = i , fy = j ;
    }
  }
  
  bfs() ;
  
  return 0 ;
}
目录
相关文章
|
小程序 前端开发 数据挖掘
嘘!市面上短视频(douyin)“去水印”的工具原来是这样实现的
现在视频号非常火热,之前在做抖音和快手的人就直接把之前的视频直接搬运过来了。但是从抖音app下载的视频都是带官方水印的?这个是怎么去掉的?哦,不对,他们应该都有保 留原视频的吧。但是还有很多人是直接搬运别人的视频的,那他们是怎么去水印的呢? 其实早就有很多现成的工具,如小程序、去水印app都能直接去水印,甚至还有收费的。
2143 1
嘘!市面上短视频(douyin)“去水印”的工具原来是这样实现的
|
数据安全/隐私保护 块存储
|
前端开发 应用服务中间件 nginx
使用Docker快速搭建Web服务器Nginx
本文指导如何使用Docker快速搭建Nginx服务器。首先,通过`docker pull`命令获取Nginx镜像,然后以容器形式运行Nginx并映射端口。通过挂载目录实现本地文件与容器共享,便于自定义网页。使用`docker ps`检查运行状态,访问IP:8088确认部署成功。最后,介绍了停止、删除Nginx容器的命令,强调Docker简化了服务器部署和管理。
|
数据库连接 API Python
RESTful API 如何处理异常
RESTful API 如何处理异常
|
移动开发 编解码 JavaScript
MediaSource 规范
【10月更文挑战第26天】MediaSource 规范是 HTML5 中用于处理媒体流的一项重要技术
349 10
|
JavaScript Java 测试技术
基于Java的人事管理系统设计和实现(源码+LW+部署讲解)
基于Java的人事管理系统设计和实现(源码+LW+部署讲解)
207 7
|
存储 算法 安全
做好数据治理,推动工业数字化迈向智能化阶段
鼓励开展重点领域和骨干企业工业数据治理专题培训,大力培养培训数据治理相关专业专职技术人员,不断壮大工业数据治理人才队伍。
|
自然语言处理 测试技术 API
音频基座大模型FunAudioLLM
音频基座大模型FunAudioLLM
301 9
使用qemu来dump虚拟机的内存,然后用crash来分析
使用qemu来dump虚拟机的内存,然后用crash来分析
|
存储 缓存 资源调度
你真的知道 NPM、Yarn 与 PNPM 这三个前端包管理器之间的区别吗?
【6月更文挑战第9天】NPM、Yarn和PNPM是主流前端包管理器,各有特色。NPM生态庞大,易用但速度慢;Yarn速度快,依赖管理稳定;PNPM性能优异,节省磁盘空间。Yarn和PNPM在速度和确定性上胜出,NPM因广泛使用和丰富资源领先。开发者可根据项目需求和喜好选择,三者共同推动前端开发进步。
407 8