Hướng dẫn giải của Trồng Cỏ Trên Cây
Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Lời giải: Trồng Cỏ Trên Cây
Hướng tiếp cận
Heavy-Light Decomposition (HLD) kết hợp Binary Indexed Tree (BIT) để xử lý cập nhật và truy vấn trên cạnh cây.
Nhận xét quan trọng
- Cập nhật đường đi trên cây = cập nhật nhiều đoạn liên tiếp trên các chuỗi nặng.
- Mỗi cạnh được biểu diễn bởi nút con (edge-based HLD).
- BIT hỗ trợ cập nhật đoạn và truy vấn điểm .
Thuật toán
- Phân rã HLD: mỗi nút thuộc một chuỗi nặng, gán vị trí liên tiếp.
- Thao tác P (cộng 1 trên đường ):
- Tách đường đi thành các đoạn trên chuỗi nặng.
- Cập nhật BIT (range update) cho mỗi đoạn.
- Thao tác Q (truy vấn cạnh ):
- Truy vấn BIT (point query) tại vị trí nút con.
Độ phức tạp
- Thời gian:
- Bộ nhớ:
Bình luận