loj#P2397. 「JOISC 2017 Day 3」幽深府邸

「JOISC 2017 Day 3」幽深府邸

题目描述

题目译自 JOISC 2017 Day3 T2「細長い屋敷 / Long Mansion

NN 个房间排列在一条直线上,依次编号为 1,2,,N1, 2, \ldots, N。只有编号相邻的房间才相连。相连的房间之间有上锁的门。
从房间 ii 进入房间 i+1i+1,或者从房间 i+1i+1 进入房间 ii,需要类型为 CiC_i 的钥匙 (1iN1)(1\le i\le N-1)
进入房间 ii 可以捡起房间里的所有钥匙。房间 iiBiB_i 把钥匙,类型分别为 A[i][1]A[i][Bi]A[i][1]\dots A[i][B_i] 保证对于同一个 ii,没有两个 A[i][j]A[i][j] 相同。钥匙可以重复使用。你可能会获得相同的钥匙,然并卵。
现在有 QQ 组查询,每组查询用两个整数 x,yx, y 来描述 (xy)(x≠y),表示:如果有人被丢进房间 xx,手上没有任何钥匙,此人能否到达房间 yy(当然,此人可以捡房间 xx 里的钥匙)。
对于每组查询,如果此人能到达,输出 YES\texttt{YES},否则输出 NO\texttt{NO}

输入格式

第一行有一个整数 NN
第二行有 N1N-1 个整数 C1,C2,,CN1C_1, C_2, \dots, C_{N-1},用空格分隔。
在接下来的 NN 行中,第 ii(1iN)(1\le i\le N) 的开头有一个整数 BiB_i,后面有 BiB_i 个整数 A[i][1]A[i][Bi]A[i][1]\dots A[i][B_i],这 Bi+1B_i+1 个整数用空格分隔。
N+2N+2 行有一个整数 QQ
在接下来的 QQ 行中,第 kk(1kQ)(1\le k\le Q) 有两个整数 Xk,YkX_k, Y_k,表示一组查询。

输出格式

输出共 QQ 行,每行一个字符串 YES\texttt{YES}NO\texttt{NO} ,表示此人能否到达房间 yy

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
YES
NO
NO
YES
5
2 3 1 3
1 3
1 2
1 1
1 3
1 2
4
1 3
3 1
4 3
2 5
NO
YES
NO
YES
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
YES
NO
YES

数据范围与提示

对于所有数据,2N5×105,2\le N\le 5\times 10^5, 1Q5×105,1\le Q\le 5\times 10^5, 1Bi5×105,1\le \sum B_i \le 5\times 10^5, 1Bi,Ci,A[i][j],Xk,YkN,1\le B_i, C_i, A[i][j], X_k, Y_k\le N, XkYkX_k≠Y_k

子任务 # 分值 NN QQ Bi\sum B_i Ci,A[i][j]C_i, A[i][j]
1 5 N5000N\le 5000 Q5000Q\le 5000 Bi5000\sum B_i \le 5000
2
3 15 N105N\le 10^5 Ci,A[i][j]20C_i, A[i][j]\le 20
4 75