1.题目描述
题目链接:点击这里

2.解决思路
只需要考虑,不管是什么序列,可选方案最多24种(4!种)所以我们只需要用next_permutation搞出0123的全排列,并让它们每一个值与序列中不同的值相对应(如0代表上,可以对应序列中的0,1,2,3;即0,1,2,3都可作为上)然后再按序列跑一遍图就行了。

3.代码

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>using namespace std;
const int MAXN=2550;char s[MAXN][MAXN];
string cmd;
int n,m,t;bool go(int start_x,int start_y,string cmd,int now)
{int x=start_x,y=start_y;while(now!=(int)cmd.size()){int ne_x,ne_y;if(cmd[now]=='0') ne_x=x-1,ne_y=y;else if(cmd[now]=='1') ne_x=x+1,ne_y=y;else if(cmd[now]=='2') ne_x=x,ne_y=y-1;else if(cmd[now]=='3') ne_x=x,ne_y=y+1;if(ne_x>=0&&ne_x<n&&ne_y>=0&&ne_y<m){if(s[ne_x][ne_y]=='#') return false;else{if(s[ne_x][ne_y]=='E') return true;else{x=ne_x,y=ne_y;now++;}}}elsebreak;}return false;
}int main(void)
{cin>>t;while(t--){cin>>n>>m;memset(s,0,sizeof(s));for(int i=0;i<n;i++) cin>>s[i];int start_x,start_y;for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(s[i][j]=='S'){start_x=i,start_y=j;break;}}}//cout<<start_x<<' '<<start_y<<endl;cin>>cmd;string mid=cmd;int order[]={0,1,2,3};//0-up 1-down 2-left 3-rightint ans=0;do{for(int i=0;i<(int)mid.length();i++){//change turnmid[i]=order[mid[i]-'0']+'0';}if(go(start_x,start_y,mid,0)) ans++;mid=cmd;}while(next_permutation(order,order+4));cout<<ans<<endl;}return 0;
}

Acwing 3812.机器人走迷宫【全排列】相关推荐

  1. 3812 机器人走迷宫(枚举 + 全排列)

    1. 问题描述: 有一个 n × m 个单元格构成的迷宫,其中空单元格用 . 表示,障碍物用 # 表示.迷宫中有一个机器人,它的起点位置用 S 表示,目标位置用 E 表示,这两个地点均没有障碍.机器人 ...

  2. 【算法】机器人走迷宫(适用于走迷宫、最短路径算法)-20200412

    标题:机器人走迷宫(适用于走迷宫.最短路径算法) 问题描述: 一块矩形方格,含有障碍和可通行格子,求从某一点到另外一点的最短距离?N*M的矩阵: 其中,1代表障碍,0代表可通行:示例:给定二维矩阵 0 ...

  3. 中南大学复试上机:1021:机器人走迷宫

    1021: 机器人走迷宫 时间限制: 1 Sec  内存限制: 128 MB 题目描述 有一个愚蠢的机器人走进一个w*h的迷宫,迷宫里有空地和陷阱.他想要访问迷宫的每个方格,但是它很笨,只会按照指令的 ...

  4. python走迷宫_Python使用Tkinter实现机器人走迷宫

    这本是课程的一个作业研究搜索算法,当时研究了一下Tkinter,然后写了个很简单的机器人走迷宫的界面,并且使用了各种搜索算法来进行搜索,如下图: 使用A*寻找最优路径: 由于时间关系,不分析了,我自己 ...

  5. 【华为OD机试真题 JAVA】机器人走迷宫

    标题:机器人走迷宫 | 时间限制:1秒 | 内存限制:65536K | 语言限制:不限 1. 房间由X*Y的方格组成,例如下图为6*4的大小.每一个方格以坐标(x,y)描述. 2. 机器人固定从方格( ...

  6. 【华为机试】【校招】【Java】机器人走迷宫(DFS)

    ■ 题目描述 [机器人走迷宫] 机器人走一个迷宫,给出迷宫的x和y(x*y的迷宫)并且迷宫中有障碍物,输入k表示障碍物有k个,并且会将障碍物的坐标挨个输入. 机器人从0,0的位置走到x,y的位置并且只 ...

  7. 华为机试:机器人走迷宫

    题目来源 华为机试:机器人走迷宫 题目描述 1. 房间由XY的方格组成,例如下图为64的大小.每一个方格以坐标(x,y)描述. 2. 机器人固定从方格(0,0)出发,只能向东或者向北前进.出口固定为房 ...

  8. 华为机试二星题--机器人走迷宫

    题目 机器人走一个迷宫,给出迷宫的x和y(x*y的迷宫)并且迷宫中有障碍物,输入k表示障碍物有k个,并且会将障碍物的坐标挨个输入. 机器人从0,0的位置走到x,y的位置并且只能向x,y增加的方向走,不 ...

  9. 华为机试【机器人走迷宫】

    标题:机器人走迷宫 | 时间限制:1秒 | 内存限制:65536K | 语言限制: 不限 [机器人走迷宫]1. 房间由XY的方格组成,例如下图为64的大小.每一个方格以坐标(x,y)描述. 2. 机器 ...

最新文章

  1. 2021年大数据Flink(十六):流批一体API Connectors ​​​​​​​​​​​​​​Redis
  2. python自动输出_python自动化报告的输出
  3. 官方iPhone SDK和开源工具链
  4. mxnet makeloss
  5. 【字符串】最长回文子串 ( 蛮力算法 )
  6. DB天气app冲刺第四天
  7. ue4集合类型_3D游戏开发之UE4中的集合:TSet容器
  8. 用模板写单链表 尹成
  9. BZOJ-1045 糖果传递
  10. mysql crash定位分析_MySQL实例crash的案例详细分析
  11. PHP随机静态页面生成系统源码雨尘SEO系统
  12. 基因突变PHP6,基因突变中那些“披着狼皮的羊” 很多“致命性”基因突变正在被证实无害...
  13. java字符串时间去掉秒_Java:当秒和毫秒均为0时,DateTimeFormatter无法解析时间字符串吗?...
  14. 计算机组装和维护ppt,计算机组装与维护ppt课件
  15. Nmap扫描和识别服务
  16. 阿里云使用经验分享——小投入大收益
  17. 检索网络方向的学生选修先行课为计算机网络,等价的关系代数表达式,其执行效率也是一样的。...
  18. C++学习笔记——C++中四个点代表什么意思?
  19. FPGA--有限状态机(FSM)的设计
  20. OOM Killer机制

热门文章

  1. 学Java有什么用?对我们有什么益处
  2. 别被吃药顺序图误导了,正确用药才是关键!官方发布→
  3. c++代码实现我的世界(2)
  4. 文本文件自动计算生成srt字幕格式的文件
  5. python取整求余
  6. 20160109 流量保护器
  7. xgboost实现蘑菇数据分类预测demo
  8. GIS CAD转换的第二部分
  9. pythonpath环境变量pth_如何设置本地python库目录/PYTHONPATH?
  10. word审阅功能、查看word文档的好姿势