巧虎机器人——颜色识别编程模式1

题目链接:3066. 巧虎机器人——颜色识别编程模式1(有人连比赛完题目在哪都不知道?)

题目大意:

地图上有个机器人,让你判断能不能从给定的起始地点(si,sj)走到目标地点(di,dj);机器人在地图上往哪边走与其所在方块的颜色有关,地图上有4种颜色r,b,g和y,你不知道每种颜色代表向上.向下,向左还是向右.你需要通过枚举找到一种方案使得机器人从起始地点走到目标地点.
如果都不能输出no,否则输出yes;(有人连题目都没读懂)

思路:

4种颜色r b g y和 4个方向一共有4!种方案,
因为第一种颜色可以从4个方向中选1个;
第二种颜色只能从3个方向中选1个…

我们可以把4个字符先映射到0123再映射到4种方向;
然后按照题目要求模拟就可以了,模拟的时候需要开个数组判断某点是否走过,走过则说明有循环,那么这种方案肯定不行;

对于4!全排列的枚举,可以用4个for循环,也可以用递归;(我不会for所以写了递归)

Code:

#include<bits/stdc++.h>
using namespace std; 

int n,m;
const int N=22;
char g[N][N];//地图
int s[256];//rbgy4种颜色字符映射到0~3
int a[5];//用来装0~3的全排列
int si,sj,di,dj;
bool st[5];//枚举全排列需要的判重数组
bool stg[N][N];//模拟的时候判断是否走过某点
int dx[]={
   0,0,1
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值