CHUYÊN đề cây QUẢN lý đoạn

21 378 0
CHUYÊN đề cây QUẢN lý đoạn

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

HỘI CÁC TRƯỜNG THPT CHUYÊN KHU VỰC DUYÊN HẢI VÀ ĐỒNG BẰNG BẮC BỘ ….… HỘI THẢO LẦN THỨ VIII CHUYÊN ĐỀ CÂY QUẢN LÝ ĐOẠN MÔN: TIN HỌC TÁC GIẢ: TRẦN VĂN THUẬN CÂY QUẢN LÝ ĐOẠN Segment trees cấu trúc liệu ban đầu thiết kế cho ứng dụng hình học Cấu trúc phức tạp sử dụng để trả lời nhiều loại truy vấn khó Segment trees thường so sánh với interval trees dạng cấu trúc liệu khác cung cấp chức tương đương Trong mục này, ta đơn giản hóa cấu trúc segment trees để giải toán truy vấn phạm vi Điều làm cho quản lý đoạn giống với segment trees hình ảnh biểu diễn thuộc tính phương thức trở nên đơn giản “yếu” nhiều so với cấu trúc nguyên thủy, theo nghĩa không trả lời truy vấn khó cấu trúc nguyên thủy Trên diễn đàn thảo luận thuật toán, tên gọi interval trees segment trees dùng để gọi tên cấu trúc Các giảng thuật toán dùng tên gọi interval trees segment trees để đề cập tới hai cấu trúc liệu hình học tính toán Cấu trúc quản lý đoạn, hạn chế interval trees hay segment trees trường hợp cụ thể Cấu trúc quản lý đoạn cung cấp cách quản lý thông qua đoạn sơ cấp, việc cài đặt dễ dàng ưu điểm cấu trúc liệu Cấu trúc quản lý đoạn Cây quản lý đoạn nhị phân đầy đủ (full binary trees) có cấu trúc sau: - Mỗi nút quản lý dãy đối tượng liên tiếp, nút chứa thông tin tổng hợp từ đối tượng mà quản lý - Nút gốc quản lý đối tượng từ tới n - Nếu nút quản lý dãy đối tượng từ l tới r (lr) then exit; {nếu k nút lá} if ( l = r) then begin T[k] := a[l] exit; End; {nếu k không nút lá} Build(2*k, l, (l+r) div 2); Build(2*k + 1, (l+r) div + 1, r); T[k] := T[2 * k] + T[2 * k + 1]; end; Thủ tục khởi tạo quản lý đoạn thực lời gọi Build(1,1,n) Cập nhật thông tin cho đoạn Mỗi có thay đổi giá trị phần tử ta cần phải cập nhật lại Khi phần tử bị thay đổi, ta nhảy tới nút k nút trực tiếp quản lý ai, thay T[k] = cập nhật lại thông tin tổng T[ ] cho tất nút chứa phần tử phạm vi quản lý procedure Update(k,l,r: longint; i,v: longint); var x: longint; begin if (l>r) or (l>i) or(rr) (j < l ) or ( r < i) then Exit(0); if (i r) or(l>j) or(rr) or (rj) then exit(vc); if (i r) or(l>j) or(r[...]... kq:=query(1,1,n,u,v); writeln(g,kq); readln(f); end; end; close(f); close(g); end; begin xuly; end Vậy Cấu trúc cây quản lý đoạn cung cấp một cách quản lý mới thông qua các đoạn sơ cấp, ngoài ra việc cài đặt dễ dàng cũng là một ưu điểm của cấu trúc dữ liệu này Cây quản lý đoạn dựa trên thuật toán tìm kiếm nhị phân, nên sử dụng cây đặc biệt này quá trình thực hiện thuật toán đạt hiệu quả cao 21 ... bằng 0 Cho m phép biến đổi và câu hỏi, mỗi phép biến đổi có dạng (u, v, k): tăng mỗi phần tử từ vị trí u đến vị trí v lên k đơn vị, mỗi câu hỏi có dạng (u, v): cho biết phần tử có giá trị lớn nhất thuộc đoạn [u, v] Input - Dòng 1 chứa 2 số nguyên dương n, m (n ... nút quản lý đối tượng từ tới n Vậy nút quản lý đối tượng từ tới n div 2, nút quản lý đối tượng từ n div +1 tới n Tương tự với nút k ta xác định đoạn mà k quản lý Cài đặt quản lý đoạn Cây quản lý. .. trúc quản lý đoạn Cây quản lý đoạn nhị phân đầy đủ (full binary trees) có cấu trúc sau: - Mỗi nút quản lý dãy đối tượng liên tiếp, nút chứa thông tin tổng hợp từ đối tượng mà quản lý - Nút gốc quản. .. để đề cập tới hai cấu trúc liệu hình học tính toán Cấu trúc quản lý đoạn, hạn chế interval trees hay segment trees trường hợp cụ thể Cấu trúc quản lý đoạn cung cấp cách quản lý thông qua đoạn

Ngày đăng: 03/01/2016, 21:34

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan