-->
当前位置:首页 > 题库 > 正文内容

编程题:模拟+暴力枚举

Luz3年前 (2022-09-06)题库354
阿拉丁已经厌倦了宫殿里的生活。他有一份稳定的工作,他的妻子茉莉花,孩子们在路上,生活变得单调。在这一切的驱使下,他决定在安定下来之前再进行一次冒险。

他决定找到金梨,这是一件极为珍贵的传奇文物,至今无人能找到。

阿拉丁正在搜索的沙漠可以建模为一个N×N的网格单元。行和列从上到下、从左到右编号为1到N。沙漠中的一些牢房里有巫师,他们以不同寻常的方式帮助阿拉丁完成任务。

阿拉丁在一个面向右方的星期一,在沙漠的左上角开始了他的探索。他的动作包括重复以下步骤:

1.如果当前单元格中包含一个醒着的向导,那么阿拉丁将向左或向右旋转90度,具体取决于向导所说的话。
2.如果前进能把阿拉丁带出沙漠,他会转过180度。
3.阿拉丁向前移动了一间牢房,整整花了他一天的时间。
对于每个向导,我们都知道他的位置和一周中每一天的活动日程。日程表是一个由七个字母“L”、“R”或“S”组成的字符串,每个字母告诉我们向导在一周的某一天(从周一开始)做什么。字母“L”表示阿拉丁将被告知左转,“R”表示阿拉丁将被告知右转,而“S”表示巫师那天睡觉。

一个古老的预言说,在K改变方向后(在步骤1或者步骤2),阿拉丁会找到梨。
根据古代的预言,编写一个程序,计算搜索将持续多少天

### 输入格式:
第一行包含两个整数N和K(2≤N≤200, 1≤K≤1000000000)表示沙漠的大小和预言中方向变化的数量。

第二行包含一个整数M(0≤M≤10000),表示巫师的数量。

以下M行中的每一行都包含两个整数R和C(1≤R、C N) ,以及由七个字母“L”、“R”或“S”组成的字符串。数字代表向导所在的行和列,而字符串代表他的日程安排。
两个向导不会共享同一个单元格,单元格(1,1)中也不会有向导。

### 输出格式:
以天为单位输出搜索的长度。

### 输入样例1:
in
3 1
0


### 输出样例1:
out
2


### 输入样例2:
in
5 2
2
1 3 RRSRRRR
1 5 RRRRLRR


### 输出样例2:
out
4


### 输入样例3:
in
5 5
3
1 3 SSRSSSS
3 3 SSSLSSS
4 3 SSRSSLS


### 输出样例3:
out
10


在第一个例子中,阿拉丁移动了两次,到达了沙漠的边缘。然后他转过180度,找到了梨。

在第二个例子中,阿拉丁在第三天到达第一个巫师,但巫师正在睡觉,所以阿拉丁继续朝着同一个方向前进。两天后,他找到了另一个巫师,巫师告诉他向左拐。阿拉丁这样做了,到达沙漠边缘,转身就找到了。






答案:若无答案欢迎评论

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。