QOJ.ac

QOJ

時間限制: 2 s 記憶體限制: 1024 MB 總分: 100

#675. 彩虹金之国

统计

很久很久以前,在梦幻时代,澳大利亚是一个由 $R$ 行 $C$ 列组成的平坦网格,每个网格单元最初都是陆地。行从北到南编号为 $1$ 到 $R$,列从西到东编号为 $1$ 到 $C$。位于第 $r$ 行第 $c$ 列的单元格记作 $(r, c)$。有一天,伟大的彩虹蛇从 $(s_r, s_c)$ 处破土而出,在澳大利亚大地上游走,所过之处皆化为河流。蛇进行了 $M$ 次连续的移动,每次移动到当前位置的正北 (N)、正南 (S)、正东 (E) 或正西 (W) 方向的相邻单元格,并将该单元格变为河流。蛇破土而出的初始单元格 $(s_r, s_c)$ 也变成了河流。

数百万年后的今天,你想要购买一个矩形区域的单元格,以纪念彩虹蛇创造河流的壮举。你需要为矩形区域内的每个陆地单元格选择一种颜色。你希望尽可能多地使用不同的颜色,但必须满足以下条件:矩形区域内每一对相邻的陆地单元格必须使用相同的颜色。如果两个单元格共享一条边,则称它们是相邻的。你不能为矩形区域外的任何陆地单元格选择颜色,也不能为矩形区域内的河流单元格选择颜色。

给定彩虹蛇的移动路径,你需要确定对于 $Q$ 个矩形区域中的每一个,你可以为其中的陆地单元格选择的最大不同颜色数量。

实现细节

你需要实现 initcolours 函数:

  • init(R, C, sr, sc, M, S) --- 评测程序将首先调用此函数,且仅调用一次。

    • $R$ 和 $C$:网格的行数和列数。
    • $sr$ 和 $sc$:蛇破土而出的行和列。
    • $M$:蛇移动的次数。
    • $S$:长度为 $M$ 的字符串:$S[i]$ 为 N、S、E 或 W,表示蛇的第 $i$ 次移动是向当前位置的正北、正南、正东或正西方向移动,对于所有 $0 \le i \le M - 1$。你可以假设蛇从未离开过网格。
  • colours(ar, ac, br, bc) --- 在调用一次 init 后,评测程序将连续调用此函数 $Q$ 次。

    • 此函数应返回一个整数:根据你的规则,在以 $(ar, ac)$ 为左上角、$(br, bc)$ 为右下角的矩形区域内,陆地单元格可以选择的最大不同颜色数量。
    • 你可以假设 $1 \le ar \le br \le R$ 且 $1 \le ac \le bc \le C$。

请查阅提供的模板文件,以获取有关针对特定编程语言实现解决方案的更多详细信息。

样例

样例输入 1

6 4 9 4
3 3
NWESSWEWS
2 3 2 3
3 2 4 4
5 3 6 4
1 2 5 3

样例输出 1

0
2
1
3

子任务

对于所有子任务,$0 \le M \le 100\,000$ 且 $R, C, Q \ge 1$。

子任务 分值 $R$ $C$ $Q$
1 11 $R \le 50$ $C \le 50$ $Q \le 1\,000$
2 12 $R = 2$ $C \le 200\,000$ $Q \le 100\,000$
3 24 $R \le 200\,000$ $C \le 200\,000$ $Q = 1$
4 27 $R \le 1\,000$ $C \le 1\,000$ $Q \le 100\,000$
5 26 $R \le 200\,000$ $C \le 200\,000$ $Q \le 100\,000$

Figure 1. 样例输入中四个矩形区域的示意图

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.