Cây Giáng sinh XOR
Đề bài
Mô tả
Cho một cây có đỉnh và cạnh. Mỗi cạnh được gắn một giá trị nguyên không âm với . Tuy nhiên, một số giá trị đã bị quên — với những cạnh đó, .
Có truy vấn. Truy vấn thứ gồm hai đỉnh , và một bit chẵn lẻ . Gọi là XOR của tất cả các giá trị trên các cạnh thuộc đường đi đơn từ đến . Khi đó, truy vấn yêu cầu số lượng bit trong biểu diễn nhị phân của có tính chẵn lẻ bằng , nghĩa là .
Hãy xác định xem có thể chọn giá trị cho các cạnh chưa biết (mỗi giá trị nằm trong ) sao cho mọi truy vấn đều đúng hay không. Nếu có, in ra một cách gán hợp lệ; những cạnh đã biết phải giữ nguyên giá trị.
Dữ liệu vào
Dòng đầu chứa số nguyên — số bộ test (). Mỗi bộ test có cấu trúc như sau:
- Dòng đầu chứa hai số và (; ).
- dòng tiếp theo, mỗi dòng chứa ba số , , (; ) mô tả một cạnh giữa đỉnh và . Nếu thì giá trị cạnh chưa biết; nếu thì cạnh có giá trị .
- dòng tiếp theo, mỗi dòng chứa ba số , , (; ; ).
Tổng trên tất cả các bộ test không vượt quá . Tổng trên tất cả các bộ test cũng không vượt quá . Các cạnh được đảm bảo tạo thành một cây.
Dữ liệu ra
Với mỗi bộ test:
- In
YESnếu tồn tại cách gán hợp lệ, sau đó in dòng, mỗi dòng ba số , , () — tập các cạnh phải trùng với đầu vào (xét không thứ tự), giá trị các cạnh đã biết phải giữ nguyên. Có thể in cạnh theo bất kì thứ tự nào. - In
NOnếu không tồn tại cách gán.
Nếu có nhiều đáp án, in ra bất cứ đáp án nào.
Ràng buộc
- ,
- Tổng và tổng trên toàn bộ các bộ test đều không vượt quá .
- cho cạnh; cho truy vấn.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 6 5 1 2 -1 1 3 1 4 2 7 6 3 0 2 5 -1 2 3 1 2 5 0 5 6 1 6 1 1 4 5 1 5 3 1 2 -1 1 3 -1 1 4 1 4 5 -1 2 4 0 3 4 1 2 3 1 3 3 1 2 -1 1 3 -1 1 2 0 1 3 1 2 3 0 2 1 1 2 1 1 2 0 |
YES 1 2 0 1 3 1 4 2 7 6 3 0 2 5 0 YES 1 2 1 1 3 0 1 4 1 4 5 1 NO NO |
Bộ test 1: gán cạnh , thoả mãn — đường đi qua cạnh giá trị và giá trị , XOR , popcount lẻ → ✓. Bộ 3 và 4 không có cách gán nào hợp lệ (giá trị các cạnh đã bị ràng buộc mâu thuẫn). |
| 2 3 2 1 2 5 2 3 -1 1 3 0 1 2 1 2 2 1 2 -1 1 2 0 1 2 1 |
NO NO |
Bộ 1: cạnh có popcount (chẵn) nên truy vấn đòi popcount lẻ là vô lý. Bộ 2: hai truy vấn cùng đỉnh nhưng yêu cầu hai chẵn lẻ khác nhau, không thể đồng thời thoả. |
Lưu ý: vì , chỉ duy nhất tính chẵn lẻ của mỗi cạnh là yếu tố quyết định. Bạn được tự do chọn giá trị cụ thể hoặc (hoặc bất cứ số nào có cùng chẵn lẻ) cho các cạnh chưa biết.
Bình luận