QOJ.ac

QOJ

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

#367. Dinh thự dài

統計

Gần nhà JOI-kun có một dinh thự rộng lớn. Dinh thự có $N$ phòng nằm thành một hàng từ đông sang tây. Phòng thứ $i$ tính từ phía đông được gọi là phòng $i$. Với mỗi $i$ thỏa mãn $1\le i\le N-1$, phòng $i$ và phòng $i+1$ được nối bởi một hành lang. Có thể đi qua hành lang theo cả hai hướng. Muốn từ một phòng đi vào hành lang, ta cần một chiếc chìa khóa. Mỗi chìa khóa có một số gọi là loại. Nhiều chìa khóa có thể cùng loại.

Từ phòng $i$ hoặc phòng $i+1$, ta cần chìa khóa loại $C_i$ để đi vào hành lang giữa hai phòng đó.

Phòng $i$ có $B_i$ chìa khóa. Các loại của chúng là $A_{i,j}$ ($1\le j\le B_i$). Khi JOI-kun vào một phòng, cậu sẽ nhặt tất cả chìa khóa trong phòng đó. Sau đó, cậu có thể dùng chúng để đi vào các hành lang.

JOI-kun có thể dùng chìa khóa bao nhiêu lần tùy ý. Đôi khi cậu nhận được nhiều chìa khóa cùng loại. Tuy nhiên, việc có nhiều chìa khóa cùng loại không mang lại lợi thế đặc biệt nào so với chỉ có một chìa khóa loại đó.

Để ứng phó với tình huống bị lạc trong dinh thự, JOI-kun dự định viết một chương trình trả lời các truy vấn sau:

  • Nếu JOI-kun vào phòng $x$ mà không có chìa khóa nào, cậu có thể đi đến phòng $y$ không?

Nhiệm vụ của bạn là viết chương trình trả lời các truy vấn trên thay cho JOI-kun.

Nhiệm vụ

Cho thông tin về dinh thự và các truy vấn, hãy viết chương trình xác định, với mỗi truy vấn, liệu JOI-kun có thể đi từ phòng này đến phòng khác hay không, giả sử hiện tại cậu đang ở trong dinh thự mà không có chìa khóa nào.

Dữ liệu vào

Đọc dữ liệu sau từ đầu vào chuẩn.

  • Dòng đầu chứa số nguyên $N$, là số phòng trong dinh thự.
  • Dòng thứ hai chứa $N-1$ số nguyên $C_1,C_2,\ldots,C_{N-1}$ cách nhau bởi dấu cách. Điều này có nghĩa là cần chìa khóa loại $C_i$ để đi vào hành lang nối phòng $i$ và phòng $i+1$.
  • Dòng thứ $i$ ($1\le i\le N$) trong $N$ dòng tiếp theo chứa số nguyên dương $B_i$ và $B_i$ số nguyên $A_{i,1},A_{i,2},\ldots,A_{i,B_i}$ cách nhau bởi dấu cách. Điều này có nghĩa là phòng $i$ có $B_i$ chìa khóa, với các loại $A_{i,j}$ ($1\le j\le B_i$).
  • Dòng tiếp theo chứa số nguyên $Q$, là số truy vấn.
  • Dòng thứ $k$ ($1\le k\le Q$) trong $Q$ dòng tiếp theo chứa hai số nguyên $X_k,Y_k$ cách nhau bởi dấu cách. Truy vấn thứ $k$ hỏi liệu JOI-kun có thể đi từ phòng $X_k$ đến phòng $Y_k$ hay không, giả sử hiện tại cậu ở phòng $X_k$ mà không có chìa khóa nào.

Dữ liệu ra

Ghi $Q$ dòng ra đầu ra chuẩn. Dòng thứ $k$ ($1\le k\le Q$) trong $Q$ dòng chứa YES nếu cậu có thể đi từ phòng $X_k$ đến phòng $Y_k$, giả sử hiện tại cậu ở phòng $X_k$ mà không có chìa khóa nào. Ngược lại, dòng đó chứa NO.

Giới hạn

Tất cả dữ liệu vào thỏa mãn các điều kiện sau.

  • $2\le N\le500\,000$.
  • $1\le Q\le500\,000$.
  • $1\le B_1+B_2+\cdots+B_N\le500\,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$ số nguyên $A_{i,1},\ldots,A_{i,B_i}$ đôi một khác nhau ($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$).

Nhiệm vụ con

Bài toán có tổng cộng 4 nhiệm vụ con. Điểm và các giới hạn bổ sung của từng nhiệm vụ con như sau:

Nhiệm vụ con 1 [5 điểm]

  • $N\le5\,000$.
  • $Q\le5\,000$.
  • $B_1+B_2+\cdots+B_N\le5\,000$.

Nhiệm vụ con 2 [5 điểm]

  • $N\le5\,000$.
  • $B_1+B_2+\cdots+B_N\le5\,000$.

Nhiệm vụ con 3 [15 điểm]

  • $N\le100\,000$.
  • $C_i\le20$ ($1\le i\le N-1$).
  • $A_{i,j}\le20$ ($1\le i\le N$, $1\le j\le B_i$).

Nhiệm vụ con 4 [75 điểm]

Không có giới hạn bổ sung.

Ví dụ

Dữ liệu vào 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

Dữ liệu ra 1

YES
NO
NO
YES

Ghi chú

  • Trong truy vấn đầu tiên, nếu JOI-kun đi qua các phòng $2,1,2,3,4$ theo thứ tự này, cậu sẽ đến được phòng $4$.
  • Trong truy vấn thứ hai, cậu chỉ có thể đến các phòng $3,4$. Vì cậu chỉ có thể lấy chìa khóa loại $1,3$, cậu không thể đến phòng $2$.
  • Trong truy vấn thứ ba, cậu không thể lấy chìa khóa loại $4$ từ phòng $5$ đến phòng $4$. Vì vậy cậu không thể đến phòng $5$.
  • Trong truy vấn thứ tư, nếu cậu đi qua các phòng $5,4,3$ theo thứ tự này, cậu sẽ đến được phòng $3$.

Dữ liệu vào 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

Dữ liệu ra 2

NO
YES
NO
YES

Dữ liệu vào 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

Dữ liệu ra 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.