Chủ Nhật, 15 tháng 6, 2014

Interval Tree

Cây đoạn là 1 cấu trúc dữ liệu thường gặp trong các bài toán tin và nó trở nên vô cùng lợi hại trong các vấn đề yêu cầu tìm kiếm nhiều lần.

1. Đặt vấn đề:

Cho dãy số nguyên A gồm N phần tử đánh số từ 0 đến N-1. Có M yêu cầu, mỗi yêu cầu có 2 dạng:
     dạng 1 : 1 i u : với ý nghĩa gán A[i] = u
     dạng 2 : 2 l r : với ý nghĩa tìm max trong đoạn A[l] A[l+1] ..... A[r]
Giới hạn : N < 10^5, M < 10^5,-2^31<=A[i], u <= 2^31 -1, 0<=l<=r<=N-1, 0<=i<=N-1 .

ví dụ : N= 5, A= 1 , 2 , 3 , 4 , 5
1 1 3  => A = 1 3 3 4 5
2 1 2 => 3
1 1 7 => A = 1 , 7 , 3 , 4 ,5
2 1 3 => 7