QOJ.ac

QOJ

Time Limit: 2.5 s Memory Limit: 1024 MB Total points: 100 Hackable ✓

#13279. Alice、Bob 和两个数组。

Statistics

存在一个长度为 $N$ 的数组 $a$ 和一个长度为 $M$ 的数组 $b$。数组中的所有数字均为整数,且范围在 $1$ 到 $k$ 之间。此外,还有一个初始为空的数组 $c$。

Alice 和 Bob 在这些数组上进行如下游戏:玩家轮流操作,每回合玩家必须在数组 $c$ 的末尾添加一个数字,使得 $c$ 始终是 $a$ 和 $b$ 的公共子序列。无法进行操作的玩家输掉游戏。Alice 先手。

他们将进行 $q$ 次游戏。对于第 $i$ 次游戏,他们会选择两个数字 $x_i$ 和 $y_i$ ($0 \le x_i < N, 0 \le y_i < M$),然后从数组 $a$ 中移除前 $x_i$ 个元素,从数组 $b$ 中移除前 $y_i$ 个元素,并在剩余的数组上进行游戏。在每次删除操作之后以及下一次操作之前,数组 $a$ 和 $b$ 都会恢复到初始状态,这意味着在一次游戏中删除的数字不会影响后续游戏。此外,数组 $c$ 在每局游戏之间会被清空。

他们总是选择 $x_i$ 和 $y_i$,使得删除操作后,数组 $a$ 和 $b$ 的剩余部分以相同的数值开头。

Alice 希望获胜,因此她请求你判断对于每一局游戏,假设双方都采取最优策略,她是否能获胜。

注意,数组可能非常长,因此它们以特殊格式提供。每个数组都以相等数字段的序列给出。数组 $a$ 由 $n$ 个这样的段组成,数组 $b$ 由 $m$ 个这样的段组成。每个段由其长度和该段中包含的数字定义。

输入格式

第一行包含六个整数 $N, n, M, m, k, q$ ($1 \le N, M \le 10^9, 1 \le n, m, k \le 1600, 1 \le q \le 10^6$),分别表示第一个数组的长度、第一个数组的段数、第二个数组的长度、第二个数组的段数、数字上限以及游戏次数。

接下来的 $n$ 行包含两个整数 $l^a_i$ 和 $v^a_i$ ($1 \le l^a_i \le N, 1 \le v^a_i \le k$),表示段的长度和该段中的数字。这些数字定义了数组 $a$:数组 $a$ 的前 $l^a_1$ 个数字等于 $v^a_1$,接下来的 $l^a_2$ 个数字等于 $v^a_2$,以此类推,最后 $l^a_n$ 个数字等于 $v^a_n$。

接下来的 $m$ 行包含两个整数 $l^b_i$ 和 $v^b_i$ ($1 \le l^b_i \le N, 1 \le v^b_i \le k$),表示段的长度和该段中的数字。这些数字定义了数组 $b$。格式与数组 $a$ 类似。

保证 $\sum l^a_i = N, \sum l^b_i = M, v^a_i \neq v^a_{i+1}$ 且 $v^b_i \neq v^b_{i+1}$。

接下来的 $q$ 行包含整数对 $x_i$ 和 $y_i$ ($0 \le x_i < N, 0 \le y_i < M$),描述了每一局游戏。

对于每一局游戏 $i$,保证如果从 $a$ 中移除前 $x_i$ 个元素,从 $b$ 中移除前 $y_i$ 个元素,剩余部分的数组将以相同的数值开头。

输出格式

对于每一局游戏,如果 Alice 采取最优策略获胜,输出 “Yes”,如果 Bob 获胜,输出 “No”。

样例

样例输入 1

5 1 5 1 1 9
5 1
5 1
0 0
0 1
0 2
1 0
1 1
1 2
2 0
2 1
2 2

样例输出 1

Yes
No
Yes
No
No
Yes
Yes
Yes
Yes

样例输入 2

7 3 7 3 2 12
2 1
3 2
2 1
2 2
3 1
2 2
0 2
0 3
0 4
1 2
1 3
1 4
2 5
2 6
3 5
3 6
4 5
4 6

样例输出 2

Yes
No
Yes
Yes
No
Yes
No
Yes
No
Yes
Yes
Yes

说明

在第一个样例中,数组为 $a = (1, 1, 1, 1, 1)$ 和 $b = (1, 1, 1, 1, 1)$。

  • 在第一个查询中,$x = 0, y = 0$,游戏在 $a = (1, 1, 1, 1, 1)$ 和 $b = (1, 1, 1, 1, 1)$ 上进行。玩家只能在 $c$ 中添加数字 $1$,因此在 $5$ 步后游戏结束,Bob 无法再进行操作,因此 Bob 输。
  • 在第二个查询中,$x = 0, y = 1$,游戏在 $a = (1, 1, 1, 1, 1)$ 和 $b = (1, 1, 1, 1)$ 上进行。游戏在 $4$ 步后结束,Alice 输。
  • 在最后一个查询中,$x = 2, y = 2$,游戏在 $a = (1, 1, 1)$ 和 $b = (1, 1, 1)$ 上进行。Bob 输。

在第二个样例中,$a = (1, 1, 2, 2, 2, 1, 1), b = (2, 2, 1, 1, 1, 2, 2)$。

  • 在第一个查询中,$x = 0$ 且 $y = 2$,游戏在 $a = (1, 1, 2, 2, 2, 1, 1)$ 和 $b = (1, 1, 1, 2, 2)$ 上进行。如果 Alice 在 $c$ 中添加数字 $2$,Bob 也会添加数字 $2$,之后将没有剩余操作,因此 Alice 输。因此,Alice 必须先添加数字 $1$ 到 $c$。此后,出于类似的原因,如果 Bob 添加数字 $2$,他将输掉游戏。因此,他被迫添加数字 $1$,数组 $c$ 变为 $(1, 1)$。然后 Alice 再次添加数字 $1$ 到 $c$,Bob 没有更多操作,因此 Alice 获胜。
  • 在第二个查询中,$x = 0$ 且 $y = 3$,游戏在 $a = (1, 1, 2, 2, 2, 1, 1)$ 和 $b = (1, 1, 2, 2)$ 上进行。遵循上述逻辑,Alice 不能添加数字 $2$,因为那样她会输。但如果 Alice 添加数字 $1$,Bob 也会添加数字 $1$,之后 Alice 将输掉游戏。因此,Bob 在此情况下获胜。

子任务

组别 分值 额外约束 所需组别 说明
0 0 样例。
1 13 $N, M \le 300$ 0
2 12 $N, M \le 5000$ 0, 1
3 11 $l^a_i \le 1000$ 且所有 $v^a_i$ 互不相同,$l^b_i \le 1000$ 且所有 $v^b_i$ 互不相同
4 8 3 $l^a_i \le 1000$ 且所有 $v^a_i$ 互不相同
5 10 $l^a_1 \ge N - 500$ 且 $v^a_1 = 1$,$l^b_1 \ge M - 500$ 且 $v^b_1 = 1$
6 7 $N, M \le 10^5$ $k \le 5$
7 6 $N, M \le 10^5$ 0, 6 $k \le 50$
8 7 0, 6, 7 $k \le 50$
9 9 0, 6 - 8
10 10 0 - 9 离线评测。
11 7 0 - 10 离线评测。

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.