QOJ.ac

QOJ

Límite de tiempo: 2.0 s Límite de memoria: 1024 MB Puntuación total: 100

#10091. 分形迷宫

Estadísticas

让我们构造一个由方格和方格间的墙组成的迷宫。从一个被墙包围的单个方格开始,然后对迷宫进行多次扩展。

扩展过程如下:将四个迷宫副本拼接在一起,形成一个 $2 \times 2$ 的副本方阵。现在,想象站在新迷宫的最中心,即四个方格交汇的一点。考虑从中心向外延伸的四堵长墙,它们分隔了相邻的副本。在这四堵墙中的三堵上,我们各开辟一个宽度为一个方格的通道。第四堵墙保持完整。

让我们记录一次具体的扩展。为从中心出发的墙分配四个数字:$r$ 代表向右的墙,$u$ 代表向上的墙,$l$ 代表向左的墙,$d$ 代表向下的墙。其中一个数字为零,其余三个数字决定了我们具体在何处开辟通道:即从中心开始计数的墙的单位线段编号。例如,1 表示紧邻中心的通道,2 表示从中心开始的第二个单位线段,依此类推。

下图展示了示例中迷宫的构造过程及结果。

我们得到的迷宫中,任意两个方格之间恰好存在一条简单路径;回想一下,如果一条路径访问每个方格最多一次,则称其为简单路径。回答 $q$ 个如下形式的问题:给定方格 $A$ 和 $B$ 的坐标,求它们之间简单路径的长度。路径长度为到达相邻方格的步数。

输入格式

第一行包含一个整数 $n$ ($1 \le n \le 30$)。接下来的 $n$ 行定义了迷宫的构建方式。每一行描述一次扩展,包含四个整数:$r, u, l, d$。其中一个是零,其余三个严格为正。

下一行包含一个整数 $q$ ($1 \le q \le 1000$)。随后是 $q$ 行询问。每个询问包含四个整数:$row_A, col_A, row_B, col_B$。这些是迷宫中两个方格的坐标(从 $1$ 到 $2^n$)。其中,行从上到下编号,列从左到右编号。

输出格式

对于每个询问,输出一个整数:给定方格之间简单路径的长度。

样例

输入 1

3
0 1 1 1
1 0 1 1
0 3 1 2
4
4 5 4 5
5 4 8 1
5 8 1 8
5 5 4 5

输出 1

0
6
22
15

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#582Editorial Open集训队作业 解题报告 by 龚咏乔Qingyu2026-01-02 22:34:07 Download

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.