Các thùng nước
Xem dạng PDFMô tả và yêu cầu
Có N thùng nước được đánh số từ 1 đến N, giữa 2 thùng bất kỳ đều có một
ống nối có một van có thể khóa hoặc mở. Ở trạng thái ban đầu tất cả các van đều
đóng.
Bạn được cho một số yêu cầu, trong đó mỗi yêu cầu có 2 dạng:
Dạng X Y 1 có ý nghĩa là bạn cần mở van nối giữa 2 thùng X và Y.
Dạng X Y 2 có ý nghĩa là bạn cần cho biết với trạng thái các van đang mở /
khóa như hiện tại thì 2 thùng X và Y có thuộc cùng một nhóm bình thông nhau hay
không? Hai thùng được coi là thuộc cùng một nhóm bình thông nhau nếu nước từ
bình này có thể chảy đến được bình kia qua một số ống có van đang mở.
Dữ liệu vào
Dòng đầu tiên ghi một số nguyên dương P là số yêu cầu. Trong P dòng tiếp
theo, mỗi dòng ghi ba số nguyên dương X, Y, Z với ý nghĩa có yêu cầu loại Z với 2
thùng X và Y.
Dữ liệu ra
Với mỗi yêu cầu dạng X Y 2 (với Z = 2) bạn cần ghi ra số 0 hoặc 1 trên 1 dòng
tùy thuộc 2 thùng X và Y không thuộc hoặc thuộc cùng một nhóm bình.
Giới hạn: 1 ≤ N ≤ 10000, 1 ≤ P ≤ 50000. Thời gian: 1 s/test. Bộ nhớ: 1 MB
Ví dụ
INPUT OUTPUT
9 0
1 2 2 0
1 2 1 1
3 7 2 0
2 3 1 1
1 3 2 0
2 4 2
1 4 1
3 4 2
1 7 2
Gợi ý. Đây là bài toán tìm vùng liên thông. Chương trình sau dùng phương pháp
hợp nhất cây.
Bình luận