SP392 SPIN - Spin

题目描述

在这个游戏中,有一组圆盘排列在一个滑块上。如下图所示,圆盘只有在同时满足两个条件时,才能从水平旋转到竖直:它正好位于标记为 `0` 的位置上,并且其右边紧挨的圆盘是竖直状态。对于最右边的圆盘,只要位于位置 `0`,就总是可以旋转,因为它右侧没有其他圆盘。 游戏的目标是通过移动滑块,使其左边缘对齐到 `Win` 标记位置: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/SP392/6e5ad06ca0a5e438bc25a31a0d1bedb60fef48c4.png) 你的任务是编写一个程序,根据输入的一系列未解决的谜题,计算每个谜题中将滑块移动到 `Win` 位置所需的最少步数。

输入格式

输入文件包含多个谜题。第一行会给出一个整数 $n$,表示谜题的数量。接下来有 $n$ 行,每行的格式为: `长度 方向 位置` 其中: - `长度` 是一个整数(小于 30),表示滑块上的圆盘数量。 - `方向` 是一个由 {h, v} 组成的字符串,长度等于上面的值,表示每个圆盘的方向(h 代表水平,v 代表竖直)。 - `位置` 是一个从 `0` 到 `长度` 的整数,表示当前哪一个编号的标记与滑块的左边缘对齐。

输出格式

对于每一个给定的谜题,你的程序应该输出一个整数,表示赢得这一谜题所需的最小步数。一步可以是滑块向左或向右移动一个单位,也可以是旋转某个圆盘。 **本翻译由 AI 自动生成**