题目链接: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

本文介绍了一个关于巧虎机器人的编程问题,任务是判断机器人能否从起点通过颜色指示到达终点。地图上的四种颜色分别对应四个方向,需要枚举所有可能的映射方案进行模拟。如果存在路径则输出'yes',否则输出'no'。文章提到了两种实现方式:四层循环或递归,鼓励读者在评论区分享思路和代码。
最低0.47元/天 解锁文章
1224

被折叠的 条评论
为什么被折叠?



