洛谷上这道题的第一篇题解。上海加油。
题目大意
Aladdin 已经厌倦了宫殿里的生活。他有一份稳定的工作,他的妻子 Jasmine 和孩子们都在路上,生活变得单调。在这一切的驱使下,他决定在安顿下来之前再进行一次冒险。他决定找到 Golden Pear,这是一件极为珍贵的传奇文物,至今无人能找到。
Aladdin 正在寻找的沙漠可以被看作是一个 n × n n×n n×n 的网格。行和列从上到下、从左到右编号为 1 1 1 到 N N N。沙漠中的网格里一共有 M M M 个巫师,他们以一种不同寻常的方式帮助 Aladdin 完成任务。
Aladdin 星期一在沙漠的左上角 ( 1 , 1 ) (1,1) (1,1) 开始他的任务并面朝右。他的动作包括重复这些步骤:
- 如果当前的网格里有一个醒着的巫师,那么 Aladdin 会根据巫师说的话向左或向右转 90 90 90 度。
- 如果向前走会把 Aladdin 带出沙漠,他会转过 180 180 180 度。
- Aladdin 向前移动了一格,这将花费他一天的时间。
对于每个巫师,我们都知道他的位置和一周中每一天的活动计划。每个巫师的日程表是一个由七个字母(仅包含 L
、R
或 S
)组成的字符串,每个字符告诉我们巫师在一周中的某一天(从星期一开始)做什么。字母 L
表示 Aladdin 将在这一天被告知向左转,R
表示 Aladdin 将在这一天被告知向右转,而 S
表示巫师那天正在睡觉。
一个古老的预言说,在改变 K K K 次方向(通过步骤 1 1 1 和步骤 2 2 2)后,Aladdin 会找到 Golden Pear。根据古老的预言,写一个程序来计算冒险将持续多少天。
大体思路
按照题意,定义一个状态为 ( x , y , d i r , d a y ) (x,y,dir,day) (x,y,dir,day),表示当前位置 ( x , y ) (x,y) (x,y) 在星期 d a y day day 被访问,方向为 d i r dir dir,其中 x , y ≤ 200 x,y\le 200 x,y≤200, d i r = { 0 , 1 , 2 , 3 } dir=\{0,1,2,3\} dir={ 0,1,2,3}, d a y = { 0 , 1 , 2 , 3 , 4 , 5 , 6 } day=\{0,1,2,3,4,5,6\} day={ 0,