题目

题目链接

题解

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. web项目启动,运行方法
  2. Robot Framework 自动化框架 - 定制自己的library
  3. 重装系统,配置CVS
  4. ASM 常用概念解释
  5. linux 用户空间通过makefile向程序传递参数
  6. java 中的点_java————形参中的点点点 | 学步园
  7. 小程序监听android返回键,如何监听小程序返回按钮事件?
  8. 一页纸API快捷免费高速api接口
  9. mybatis逆向工程generatorConfiguration详细配置
  10. 14-磁盘管理-df,du命令,磁盘分区
  11. mysql数据库主从停止_Mysql 主从数据库
  12. [资料] GIS资料汇总(GIS+Envi+erdas视频教程)
  13. uni-app框架简介
  14. 【ARM 嵌入式 C 入门及渐进 3 -- GCC __attribute__ 使用】
  15. 充电器用着用着就松了怎么办_充电接口松动及插不紧的解决方法,看完你就知道了...
  16. mongodb多数据源配置
  17. 格式化输出摄氏-华氏温度对应表
  18. 关于固定定位position: fixed;和横向滚动overflow-x: scroll;无法同时使用的问题
  19. 使用Audio Mixer分别控制音效
  20. Halcon:PCB缺陷检测

热门文章

  1. 软件设计原则 — 开放封闭原则
  2. MSP430控制AD7712采集数据
  3. 安卓国际化之strings.xml导入Excel表格及从excel恢复到Strings.xml中
  4. 随记:spri排除Bean时not be excluded because they are not auto-configuration classes
  5. 【学习】如何制作手机端html模板(REM的实际应用)
  6. 完美解决:Chrome浏览器无法自动保存/填充密码
  7. 【数据库-MySql】单姓第二字用*号代替,复姓第三个字用*号代替。
  8. 阿达(Ada Lovelace)
  9. DECIMAL (6,2)
  10. Android动态修改icon--让你的app浪起来