#P11157. [rnoi 2025]Alice, Bob, and two arrays
[rnoi 2025]Alice, Bob, and two arrays
Description
现在有一个长度为 的数组 和一个长度为 的数组 。这两个数组中的所有元素都是在 到 范围内的整数。此外,还有一个数组 一开始是空的。
Alice 和 Bob 将在这两个数组上进行以下游戏:
两人轮流操作,每次操作时,一个玩家需要选择一个数字并将其放到数组 的末尾,使得数组 始终是数组 和数组 的公共子序列。如果某个玩家无法进行操作,则该玩家输掉游戏。Alice 先手。
游戏将进行 次,每次进行游戏前,Alice 和 Bob 都会分别从数组 和 的开头移除若干元素(分别为前 和前 个元素),然后在剩余的数组上进行游戏。每次游戏结束后,数组状态恢复到游戏之前的初始状态,并且 会被清空。注意,数组中的元素只是被临时移除,不会永久删除。
由于 Alice 和 Bob 有特殊的习惯,他们选择移除元素的数量 和 时,总是会保证:
移除之后,两个数组剩余部分的起始值一定相同。
Alice 非常想赢,因此她请你帮忙确定每次游戏在双方均以最佳策略进行的情况下,她是否能赢。
注意:为了处理较大的数组,数组采用特殊方式表示。数组是由若干个连续相同元素的“段”组成的,每个段用长度和该段元素的值表示。
Format
Input
第一行包含六个整数 (, , )分别表示第一个数组长度,第一个数组的段数,第二个数组长度,第二个数组的段数,元素的最大值,以及游戏次数。
接下来 行,每行包含两个整数 (, ),表示第一个数组的第 段的长度和元素值。
接下来 行,每行包含两个整数 (, ),表示第二个数组的第 段的长度和元素值。
保证所有段长度之和等于各自数组的长度,即: [ \sum l_i^a = N,\quad \sum l_i^b = M ]
接下来 行,每行两个整数 (, ),表示每次游戏中从数组 和 的开头分别移除的元素数量。保证移除后的两个数组的首个元素一定相同。
Output
对于每次游戏,若 Alice 在最佳策略下能赢,则输出 "Yes",否则输出 "No"。
Samples
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
Yes
No
Yes
No
No
Yes
Yes
Yes
Yes
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
Yes
No
Yes
Yes
No
Yes
No
Yes
No
Yes
Yes
Yes
Note
在第一个样例中,数组 和数组 均为 [1,1,1,1,1]。
例如:
- 第一个询问,移除 0 个元素,剩余数组都是 [1,1,1,1,1]。Alice 将必然获胜。
- 第二个询问,数组分别变为 [1,1,1,1,1] 和 [1,1,1,1],Alice 必输。
在第二个样例中,数组 为 [1,1,2,2,2,1,1],数组 为 [2,2,1,1,1,2,2]。
Limitation
时间限制:1s
空间限制:1024KiB
Scoring
本题分为11个子任务,每个子任务的得分情况如下,只有通过本组所有数据以及所有必需的前置组数据才能得到对应分数。
组别 | 分值 | 附加条件 | 必需通过组 | 备注 |
---|---|---|---|---|
0 | - | 样例 | ||
1 | 13 | , | 0 | - |
2 | 12 | , | 0,1 | |
3 | 11 | - | - | 且所有 不同 |
4 | 8 | 3 | , 所有 不同 | |
5 | 10 | - | $ l_1^a \geq N-500, v_1^a=1; l_1^b \geq M-500, v_1^b=1 $ | |
6 | 7 | |||
7 | 6 | 0,6 | ||
8 | 7 | - | 0,6,7 | , |
9 | 0,6-8 | |||
10 | 0-9 | 离线评测 | ||
11 | 7 | 0-10 |