题目

题目链接

题解

BFS模板题。


就在模板题的基础上稍微加了点限制而已。


我用的是pair存的,first表示位置,将二维压缩成一维了;second表示步数;
要求正负交替,我就采用异或的思想进行,判断下一个位置能否作为落脚点即可。


不懂如何实现的二维压缩成一维的同学,评论区问一下,我会回复。

代码

#include<bits/stdc++.h>
using namespace std;
typedef pair<int, int> PII;
const int N = 110;int dx[] = {-1, 1, 0, 0};
int dy[] = {0, 0, -1, 1};int n, Ax, Ay, Bx, By, a[N][N], vis[N][N];
char ch;queue<PII> q;int main()
{cin>>n;for(int i = 0;i < n;i ++)for(int j = 0;j < n;j ++) {cin>>ch, getchar();if(ch == 'A') Ax = i, Ay = j;else if(ch == 'B') Bx = i, By = j;else if(ch == '-') a[i][j] = 0;else if(ch == '+') a[i][j] = 1;}q.push(PII(Ax*n+By, 0));vis[Ax][Ay] = 1;while(!q.empty()) {PII p = q.front();q.pop();int x = p.first / n, y = p.first % n;for(int i = 0;i < 4;i ++) {int tx = x + dx[i], ty = y + dy[i];if(tx < 0 || ty < 0 || tx >= n || ty >= n) continue;if(tx == Bx && ty == By) {cout << p.second + 1 << endl; return 0;}if(vis[tx][ty]) continue;if((x==Ax && y==Ay) || a[tx][ty] ^ a[x][y]) q.push(PII(tx*n+ty, p.second + 1)), vis[tx][ty] = 1;    }}return 0;
}

蓝桥杯2015年第六届真题-穿越雷区相关推荐

  1. 问题 1825: [蓝桥杯][2015年第六届真题]穿越雷区

    问题 1825: [蓝桥杯][2015年第六届真题]穿越雷区 时间限制: 1Sec 内存限制: 128MB 提交: 310 解决: 211 题目描述 X星的坦克战车很奇怪,它必须交替地穿越正能量辐射区 ...

  2. [蓝桥杯][2015年第六届真题]穿越雷区

    文章目录 题目描述 输入 输出 样例输入 样例输出 c语言AC代码 题目描述 X星的坦克战车很奇怪,它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转,否则将报废. 某坦克需要从A区到B区去( ...

  3. 蓝桥杯2015年第六届真题——穿越雷区(C/C++)

    穿越雷区 一.题目内容 题目描述 X星的坦克战车很奇怪,它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转,否则将报废.某坦克需要从A区到B区去(A,B区本身是安全区,没有正能量或负能量特征) ...

  4. [蓝桥杯][2015年第六届真题]生命之树(树形dp)

    题目描述 在X森林里,上帝创建了生命之树. 他给每棵树的每个节点(叶子也称为一个节点)上,都标了一个整数,代表这个点的和谐值. 上帝要在这棵树内选出一个非空节点集S,使得对于S中的任意两个点a,b,都 ...

  5. [蓝桥杯][2015年第六届真题]密文搜索(排序+二分)

    题目描述 福尔摩斯从X星收到一份资料,全部是小写字母组成. 他的助手提供了另一份资料:许多长度为8的密码列表. 福尔摩斯发现,这些密码是被打乱后隐藏在先前那份资料中的. 请你编写一个程序,从第一份资料 ...

  6. [蓝桥杯][2015年第六届真题]机器人塔(DFS)

    题目描述 X星球的机器人表演拉拉队有两种服装,A和B. 他们这次表演的是搭机器人塔. 类似: A B B A B A A A B B B B B A B A B A B B A 队内的组塔规则是: A ...

  7. [蓝桥杯][2015年第六届真题]表格计算(递归+记忆化)

    题目描述 某次无聊中, atm 发现了一个很老的程序.这个程序的功能类似于 Excel ,它对一个表格进行操作. 不妨设表格有 n 行,每行有 m 个格子. 每个格子的内容可以是一个正整数,也可以是一 ...

  8. 蓝桥杯2015年第六届C/C++ B组省赛习题题解

    目录 第一题:奖券数目 第二题:星系炸弹(日期计算) 第三题:三羊献瑞(全排列) 第四题:格子中输出 第五题:九数组分数(dfs) 第六题:加法变乘法(枚举) 第七题:牌型种数(dfs+dp) 第八题 ...

  9. [蓝桥杯][2019年第十届真题]扫地机器人(二分+贪心)

    题目描述 小明公司的办公区有一条长长的走廊,由 N 个方格区域组成,如下图所 示. 走廊内部署了 K 台扫地机器人,其中第 i 台在第 Ai 个方格区域中. 已知扫地机器人每分钟可以移动到左右相邻的方 ...

最新文章

  1. spring WebServiceTemplate 调用 axis1.4 发布的webservice
  2. 腾讯云宣布核心产品全线降价,最高降幅达50%
  3. 华为实验台ENSP安装与使用
  4. ITK:创建样本测量列表
  5. 数据结构---BF字符串模式匹配
  6. 互换性与技术测量教材pdf_【检验】临床生物化学检验技术(第6版)人民卫生出版社【电子教材PDF】【人卫教材电子版】...
  7. xy轴坐标图数字表示_【相机标定】四个坐标系之间的变换关系
  8. php文件锁 阻塞区别,php文件锁阻塞模式和非阻塞模式
  9. (转)Spring Boot 2 (四):使用 Docker 部署 Spring Boot
  10. UESTC 31 饭卡 card
  11. Java集合Map(四)
  12. 定时器/计数器0(定时器)
  13. 各种矩阵压缩原理(书本上没有讲到的具体公式推理过程)
  14. android 设置屏幕固定位置,Android 关于dialog的显示位置设置
  15. python入侵电脑教程_Python外星人入侵问题求助?python网站入侵视频教程
  16. 简单通俗理解MRF马尔可夫随机场
  17. 3Ds MAX 百度网盘免费下载
  18. 实现原理 扫描枪_扫描枪原理
  19. 【python教程入门学习】拒绝反爬虫 教你爬虫验证码
  20. 1.3 Go语言上手-高质量编程与性能调优实战

热门文章

  1. 【Python】回数是指从左向右读和从右向左读都是一样的数,例如12321,909。请利用filter()筛选出回数
  2. c语言编写可乐瓶游戏,可乐瓶游戏二十则
  3. MANIFEST.MF文件详解
  4. 构建工具篇 - react 的 yarn eject 构建命令都做了什么
  5. 「解析」语义分割性能指标 附代码
  6. vue两个按钮切换_vue点击循环 添加列表 点击来回切换
  7. matlab2017硬件加速,现场影像增强中的硬件加速机制研究
  8. Python 多线程卖票问题
  9. INS-30131问题解决。
  10. 户外广告 android系统,十目户外广告监测监管系统下载-十目监测(户外广告监测app)v1.0.0 安卓版-腾牛安卓网...