Home => ProblemSet => 4.1-38:【模板】子序列自动机
Problem2171--4.1-38:【模板】子序列自动机

2171: 4.1-38:【模板】子序列自动机

Time Limit: 1 Sec  Memory Limit: 128 MB  Submit: 0  Solved: 0
[ Submit ] [ Status ] [ Creator: ][ 参考程序 ]

Description

本题中,若 x 是 y 的子序列,则等价于存在一个单调递增序列 z,满足 ∣z∣=∣x∣,z∣x∣≤∣y∣,且 ∀i∈[1, ∣x∣], yzi=xi。其中 ∣x∣, ∣y∣, ∣z∣ 分别代表序列 x, y, z 的长度,xi, yi, zi 分别代表序列 x, y, z 的第 i 项。
给定一个长度为 n 的正整数序列 a ,有 q 次询问,第 i 次询问给定一个长度为 Li 的序列 bi,请你判断 bi 是不是 a 的子序列。序列 a 和所有 bi 中的元素都不大于一个给定的正整数 m。

Input

每个测试点有且仅有一组数据。
输入的第一行是四个用空格隔开的整数,分别代表 type, n, q, m。其中 type 代表测试点所在的子任务编号,其余变量的含义见【题目描述】。
输入的第二行是 n 个用空格隔开的整数,第 i 个数字代表序列 a 的第 i 个元素 ai。
第 3 行至第 (q+2) 行,每行代表一次询问。第 (i+2) 行的输入格式为:
  • 第 (i+2) 行的行首有一个整数 li,代表第 i 次询问的序列长度。一个空格后有 li 个用空格隔开的整数。该行的第 (j+1) 个整数代表序列 bi 的第 j 个元素 bi,j

Output

对于每次询问,输出一行一个字符串,若给定的序列是 a 的子序列,则输出 Yes,否则输出 No。

Sample Input Copy

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

Sample Output Copy

No
Yes
No
Yes
Yes

HINT



样例 1 解释

  • 对于第一次询问,原序列中没有 5,所以给定序列显然不是原序列的子序列。
  • 对于第二次询问,存在两个合法的序列 z,分别是 {2, 3} 和 {2, 4}。即 a2=b2,1, a3=b2,2 或 a2=b2,1, a4=b2,2。这里 bi,j 代表序列 bi 的第 j 个元素,序列 z 的含义见【题目背景】,下同。
  • 对于第三次询问,不存在合法的序列 z。
  • 对于第四次询问,存在两个合法的序列 z,分别是 {1, 3, 5} 和 {1, 4, 5}。
  • 对于第五次询问,存在一个合法的序列 z,为 {1, 2, 3, 4, 5}。


对于全部的测试点,保证 1n,m,q105, 1ai,bi,jm1li106i=1 to li106

Source/Category