QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 256 MB 満点: 100

#11345. 建造塔楼

統計

在游戏板上建造塔是一件非常有趣的事情。这里我们介绍一种同样是在游戏板上建造塔的游戏。

游戏板上有 $n$ 根木棍。游戏开始时,我们将不同颜色的盘子放在木棍上。共有 $n - 2$ 种颜色的盘子。对于每种颜色,都有尺寸为 $0, 1, 2, 3, 4, 5, 6$ 的盘子各一个。因此,总共有 $7(n - 2)$ 个盘子放置在木棍上。

如果尺寸为 $x$ 的盘子被放置在同一颜色尺寸为 $x + 1$ 的盘子正上方,它们就会粘在一起,无法再分开。换句话说,在游戏的剩余部分中,它们必须一起移动。

对于每一次移动,我们只能移动每根木棍最顶部的盘子(可能它已经与其它几个盘子粘在一起,因此它们会被一起移动)。我们只能将它们移动到满足以下条件的木棍上:该木棍最顶部的盘子与正在移动的盘子颜色相同,且尺寸比正在移动的盘子大。或者,我们可以将它们移动到一根空的木棍上。

这个游戏的目标是在 $n - 2$ 根不同的木棍上建造出 $n - 2$ 座塔。每座塔由 $7$ 个盘子组成,从上到下依次为 $0, 1, 2, 3, 4, 5, 6$。

现在你需要求出实现这一目标所需的最少移动次数。

输入格式

输入的第一行包含测试用例的数量 $T(1 \le T \le 20)$。接下来是 $T$ 个测试用例。 每个测试用例以数字 $n(n = 8)$ 开头,表示游戏板上的木棍数量。接下来的 $n$ 行,每行以一个数字 $P_i(1 \le P_i \le 6)$ 开头,表示该木棍上放置的盘子组数。随后是 $P_i$ 个字符串,每个字符串表示该木棍上从底到顶放置的一组盘子。字符串的第一个字符表示颜色,其余部分表示尺寸或尺寸范围。

保证颜色数量等于 $n - 2$,且每种颜色都有 $7$ 个不同的盘子,尺寸为 $0$ 到 $6$。 同时保证每个测试用例至少存在一个解。

输出格式

对于每个测试用例,输出一行 “Case #x: y”,其中 $x$ 是测试用例编号(从 $1$ 开始),$y$ 是建造 $n - 2$ 座完整塔所需的最少移动次数。

样例

样例输入 1

1
8
6 A0 B0 E1 C0 C5 F3
6 F6 D0 B4 E0 D6 C2
5 F0 B3 E5 C1 B5
5 D5 B1 E6 B2 A5
5 F1 A4 F4 D3 B6
5 A6 D2 E4 D1 C4
4 A1 E2-3 D4 A2
5 A3 C6 F5 C3 F2

样例输出 1

Case #1: 47

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.