QOJ.ac

QOJ

実行時間制限: 3 s メモリ制限: 256 MB 満点: 100

#367. 長宅邸

統計

JOI-kun 家附近有一座寬廣的宅邸。宅邸裡有 $N$ 個房間,由東向西排成一列。從最東邊開始數的第 $i$ 個房間稱為房間 $i$。對每個滿足 $1 \le i \le N-1$ 的 $i$,房間 $i$ 與房間 $i+1$ 之間都有一條走廊相連。走廊可以雙向通行。從房間進入走廊需要一把鑰匙。每把鑰匙都有一個稱為類型的編號,多把鑰匙可以具有相同的類型。

從房間 $i$ 或房間 $i+1$ 進入兩者之間的走廊,都需要一把類型為 $C_i$ 的鑰匙。

房間 $i$ 裡有 $B_i$ 把鑰匙,類型分別為 $A_{i,j}$($1 \le j \le B_i$)。JOI-kun 進入一個房間時,會拿起房間裡的所有鑰匙。之後,他就能使用這些鑰匙進入走廊。

JOI-kun 可以不限次數地使用鑰匙。有時他會拿到多把相同類型的鑰匙,但與只有一把該類型的鑰匙相比,持有多把並沒有任何特別的好處。

為了應對在宅邸裡迷路的情況,JOI-kun 打算寫一個程式來回答以下詢問:

  • 如果 JOI-kun 不帶任何鑰匙進入房間 $x$,他能否移動到房間 $y$?

你的任務是代替 JOI-kun 寫出回答上述詢問的程式。

任務

給定宅邸的資訊與詢問,請寫一個程式,對每個詢問,判斷在他目前身處宅邸且沒有任何鑰匙的前提下,能否從一個房間移動到另一個房間。

輸入格式

從標準輸入讀取以下資料。

  • 第一行包含一個整數 $N$,表示宅邸的房間數量。
  • 第二行包含 $N-1$ 個以空格分隔的整數 $C_1,C_2,\ldots,C_{N-1}$,表示進入連接房間 $i$ 與房間 $i+1$ 的走廊需要類型為 $C_i$ 的鑰匙。
  • 接下來 $N$ 行中的第 $i$ 行($1 \le i \le N$)包含一個正整數 $B_i$,以及 $B_i$ 個以空格分隔的整數 $A_{i,1},A_{i,2},\ldots,A_{i,B_i}$,表示房間 $i$ 裡有 $B_i$ 把鑰匙,其類型為 $A_{i,j}$($1 \le j \le B_i$)。
  • 下一行包含一個整數 $Q$,表示詢問數量。
  • 接下來 $Q$ 行中的第 $k$ 行($1 \le k \le Q$)包含兩個以空格分隔的整數 $X_k,Y_k$,表示第 $k$ 個詢問要問:假設 JOI-kun 目前在房間 $X_k$,且沒有任何鑰匙,他能否從房間 $X_k$ 移動到房間 $Y_k$?

輸出格式

向標準輸出寫入 $Q$ 行。如果假設他目前在房間 $X_k$ 且沒有任何鑰匙時,能夠從房間 $X_k$ 移動到房間 $Y_k$,則第 $k$ 行($1 \le k \le Q$)包含 YES,否則包含 NO。

資料範圍

所有輸入資料都滿足以下條件。

  • $2 \le N \le 500\,000$。
  • $1 \le Q \le 500\,000$。
  • $1 \le B_1+B_2+\cdots+B_N \le 500\,000$。
  • $1 \le B_i \le N$($1 \le i \le N$)。
  • $1 \le C_i \le N$($1 \le i \le N-1$)。
  • $1 \le A_{i,j} \le N$($1 \le i \le N$,$1 \le j \le B_i$)。
  • $B_i$ 個整數 $A_{i,1},\ldots,A_{i,B_i}$ 互不相同($1 \le i \le N$)。
  • $1 \le X_k \le N$($1 \le k \le Q$)。
  • $1 \le Y_k \le N$($1 \le k \le Q$)。
  • $X_k \ne Y_k$($1 \le k \le Q$)。

子任務

本題共有 4 個子任務。各個子任務的分數與額外限制如下:

子任務 1 [5 分]

  • $N \le 5\,000$。
  • $Q \le 5\,000$。
  • $B_1+B_2+\cdots+B_N \le 5\,000$。

子任務 2 [5 分]

  • $N \le 5\,000$。
  • $B_1+B_2+\cdots+B_N \le 5\,000$。

子任務 3 [15 分]

  • $N \le 100\,000$。
  • $C_i \le 20$($1 \le i \le N-1$)。
  • $A_{i,j} \le 20$($1 \le i \le N$,$1 \le j \le B_i$)。

子任務 4 [75 分]

沒有額外限制。

範例

輸入格式 1

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

輸出格式 1

YES
NO
NO
YES

說明

  • 第一個詢問中,如果 JOI-kun 依序造訪房間 $2,1,2,3,4$,就能到達房間 $4$。
  • 第二個詢問中,他只能造訪房間 $3,4$。由於他只能拿到類型 $1,3$ 的鑰匙,因此無法到達房間 $2$。
  • 第三個詢問中,他無法取得從房間 $5$ 到房間 $4$ 所需的類型 $4$ 鑰匙,因此無法到達房間 $5$。
  • 第四個詢問中,如果他依序造訪房間 $5,4,3$,就能到達房間 $3$。

輸入格式 2

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

輸出格式 2

NO
YES
NO
YES

輸入格式 3

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

輸出格式 3

YES
NO
YES

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

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.