[DHBB24 - CVP - 10] Bài 3: Chìa khóa
Xem dạng PDFTrong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài
Có ~N~ căn phòng được xây dựng theo một đường thẳng và được đánh số từ ~1~ đến ~N~. Chỉ có những phòng có số liền kề mới thông nhau. Có khóa cửa giữa các phòng thông nhau.
Chìa khóa mở cửa thông giữa hai phòng ~i~ và ~i+1~ có loại là ~C_i~ (~1 \le i \le N-1~). Khi vào phòng ~i~ (~1 \le i \le N~), có thể lấy tất cả các chìa khóa ở trong phòng này. Phòng thứ ~i~ có ~B_i~ chìa khóa các loại ~A[i][1], \dots, A[i][B_i]~, đảm bảo các ~A[i][j]~ đôi một phân biệt. Chìa khóa có thể được tái sử dụng nhiều lần.
Bạn cần trả lời ~Q~ truy vấn, mỗi truy vấn cho hai số nguyên ~x, y~ (~x \neq y~) mô tả rằng nếu một người bị nhốt vào phòng ~x~ mà không có bất kỳ chìa khóa nào trong tay thì liệu rằng anh ta có thể vào được phòng ~y~ hay không.
Yêu cầu: Xác định khả năng di chuyển giữa các phòng dựa trên các chìa khóa thu thập được.
Input
- Dòng 1: chứa số nguyên ~N~ (~2 \le N \le 500,000~);
- Dòng 2: chứa ~N-1~ số nguyên ~C_1, C_2, \dots, C_{N-1}~ (~1 \le C_i \le N~);
- Tiếp theo là ~N~ dòng, dòng thứ ~i~ (~1 \le i \le N~) trong đó gồm một số nguyên ~B_i~ (~1 \le B_i \le 500,000~) ở đầu, tiếp theo là ~B_i~ số ~A[i][1], \dots, A[i][B_i]~ (~1 \le A[i][j] \le N, \forall i, j~);
- Dòng tiếp theo ghi một số nguyên ~Q~ (~1 \le Q \le 500,000~);
- Cuối cùng là ~Q~ dòng, mô tả ~Q~ truy vấn, mỗi truy vấn gồm hai số nguyên ~X_k, Y_k~ (~1 \le k \le Q~).
Output
- Ghi trên ~Q~ dòng, mỗi dòng gồm một câu trả lời cho truy vấn tương ứng. Ghi "YES" nếu có thể, "NO" nếu không thể.
Bình luận