UOJ Logo Universal Online Judge

UOJ

#362. 【JOISC2017】Long Mansion

附件下载 统计

$N$ 个房间排列在一条直线上,依次编号为 $1, 2, \ldots, N$。只有编号相邻的房间才相连。相连的房间之间有上锁的门。

从房间 $i$ 进入房间 $i+1$,或者从房间 $i+1$ 进入房间 $i$,需要类型为 $C_i$ 的钥匙 $(1\le i\le N-1)$。

进入房间 $i$ 可以捡起房间里的所有钥匙。房间 $i$ 有 $B_i$ 把钥匙,类型分别为 $A[i][1]\dots A[i][B_i]$ 保证对于同一个 $i$,没有两个 $A[i][j]$ 相同。钥匙可以重复使用。你可能会获得相同的钥匙,然并卵。

现在有 $Q$ 组查询,每组查询用两个整数 $x, y$ 来描述 $(x≠y)$,表示:如果有人被丢进房间 $x$,手上没有任何钥匙,此人能否到达房间 $y$(当然,此人可以捡房间 $x$ 里的钥匙)。

对于每组查询,如果此人能到达,输出 $\texttt{YES}$,否则输出 $\texttt{NO}$ 。

输入格式

第一行有一个整数 $N$。

第二行有 $N-1$ 个整数 $C_1, C_2, \dots, C_{N-1}$,用空格分隔。

在接下来的 $N$ 行中,第 $i$ 行 $(1\le i\le N)$ 的开头有一个整数 $B_i$,后面有 $B_i$ 个整数 $A[i][1]\dots A[i][B_i]$,这 $B_i+1$ 个整数用空格分隔。

第 $N+2$ 行有一个整数 $Q$。

在接下来的 $Q$ 行中,第 $k$ 行 $(1\le k\le Q)$ 有两个整数 $X_k, Y_k$,表示一组查询。

输出格式

输出共 $Q$ 行,每行一个字符串 $\texttt{YES}$ 或 $\texttt{NO}$ ,表示此人能否到达房间 $y$。

样例一

input

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

output

YES
NO
NO
YES

explanation

查询 1:可行,此人应依次到 $2, 1, 2, 3, 4$ 号房间搜刮钥匙。

查询 2:不可行,此人只能到达 $3,4$ 号房间,只能拿到 $1,3$ 号钥匙。

查询 3:不可行,此人无法拿到 $4$ 号钥匙。

查询 4:可行,此人应依次到 $5, 4, 3$ 号房间搜刮钥匙。

样例二

input

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

output

NO
YES
NO
YES

样例三

input

7
6 3 4 1 2 5
1 1
1 5
1 1
1 1
2 2 3
1 4
1 6
3
4 1
5 3
4 7

output

YES
NO
YES

数据范围与提示

对于所有数据,$2\le N\le 5\times 10^5,$ $1\le Q\le 5\times 10^5,$ $1\le \sum B_i \le 5\times 10^5,$ $1\le B_i, C_i, A[i][j], X_k, Y_k\le N,$ $X_k≠Y_k$。

子任务 # 分值 $N$ $Q$ $\sum B_i$ $C_i, A[i][j]$
1 5 $N\le 5000$ $Q\le 5000$ $\sum B_i \le 5000$ $C_i, A[i][j]\le N$
2 5 $Q\le 5\times 10^5$
3 15 $N\le 10^5$ $\sum B_i \le 5\times 10^5$ $C_i, A[i][j]\le 20$
4 75 $N\leq 5\times 10^5$ $C_i, A[i][j] \le N$

时间限制:$3\texttt{s}$

空间限制:$256\texttt{MB}$