DHBB 2026 - DX21 - 11 - Truy vấn nút đỏ

Xem dạng PDF

Gửi bài giải

Điểm: 45,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout
Test chính thức

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong 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

Cho một đồ thị dạng cây gồm ~N~ nút được đánh số từ ~1~ đến ~N~. Gốc của cây nằm ở nút ~1~. Ban đầu, tất cả các nút trên cây đều có màu Trắng.

Có ~M~ truy vấn thuộc hai loại:

  • Loại ~1~ ~(1\ v)~: Tìm nút màu Đỏ có độ sâu nhỏ nhất (gần nút gốc nhất) nằm trên đường đi đơn từ nút gốc ~1~ đến nút ~v~. Nếu trên đường đi này không có nút màu Đỏ nào, in ra ~-1~.

  • Loại ~2~ ~(2\ v)~: Đảo trạng thái màu của nút ~v~. Nếu nút ~v~ đang màu Trắng sẽ trở thành màu Đỏ, và ngược lại (tuy nhiên, dựa trên logic a[id]=abs(a[id]-v) và cách cập nhật của bạn, truy vấn này thường được hiểu là đánh dấu nút ~v~ trở thành màu Đỏ).

Input

  • Dòng đầu tiên chứa hai số nguyên ~N~ và ~M~ ~(1 \le N, M \le 2 \times 10^5)~.

  • ~N - 1~ dòng tiếp theo, mỗi dòng chứa hai số nguyên ~u, v~ mô tả một cạnh của cây.

  • ~M~ dòng tiếp theo, mỗi dòng chứa hai số nguyên ~type~ và ~v~ mô tả loại truy vấn và nút thực hiện truy vấn.

Output

Với mỗi truy vấn loại ~1~, in ra chỉ số của nút thỏa mãn yêu cầu hoặc ~-1~ nếu không tìm thấy.

Scoring

Subtask Điểm Ràng buộc
1 ~40\%~ ~N, M \le 1000~
2 ~30\%~ ~N, M \le 2 \cdot 10^5~; cây là đường thẳng
3 ~30\%~ ~N, M \le 2 \cdot 10^5~

Sample Input 1

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

Sample Output 1

3
1

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.