Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 17 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
17
Dung lượng
281,5 KB
Nội dung
Cấu trúc liệu đặc biệt HỘI THẢO KHOA HỌC CÁC TRƯỜNG THPT CHUYÊN KHU VỰC DUYÊN HẢI & ĐỒNG BẰNG BẮC BỘ LẦN THỨ VIII CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI Người thực hiện: ÔN QUANG HÙNG Đơn vị: Trường THPT Chuyên Nguyễn Bỉnh Khiêm - tỉnh Quảng Nam Quảng Nam, tháng năm 2015 Cấu trúc liệu đặc biệt INTERVAL TREE(IT) A PHẦN LÝ THUYẾT Interval tree (cây đoạn) nhị phân nút node có hai nút Giả sử nút A lưu thông tin đoạn từ i j nút nó: A1; A2, lưu thông tin đoạn i m m+1 j, với m=(i+j) div phần tử đoạn Để đơn giản ta dùng mảng chiều T để biểu diễn với ý nghĩa: − Nút nút gốc − Nút d(nếu không nút lá) có nút trái: 2*d nút phải 2*d+1 − Nút lưu thông tin đoạn n(n: độ dài dãy số) Vậy dễ hiểu nút lưu thông tin đoạn [1 (n+1) div 2] nút lưu thông tin đoạn [(n+1) div 2+1 n] Một cách đệ quy ta thấy nút thứ d lưu thông tin đoạn xác định Ví dụ với n=5 có đoạn [1 n] Cấu trúc liệu đặc biệt Trên interval tree có hai thao tác quan trọng − Thao tác cập nhật thông tin(gọi truy vấn 1) đoạn [i j] − Thao tác khai thác thông tin(gọi truy vấn 2) đoạn [i j] Ứng dụng IT Cây IT cho phép cập nhật tìm kiếm đoạn, khoảng hiệu Cây IT kết hợp với cấu trúc Heap AVL để giải số toán Đối với toán liên quan đến dãy số; dạng toán quy dãy số; toán hình học, đặc biệt việc mà thường xuyên biến đổi nhiều câu hỏi (truy vấn) xen kẻ, IT hữu dụng Ví dụ: Cho dãy số nguyên A[1 N] gồm N phần tử(N[...]... truy vấn cây IT là sẽ được kết quả theo yêu cầu của bài 14 Cấu trúc dữ liệu đặc biệt Một số bài tập khác http://vn.spoj.com/problems/QMAX3VN/ http://vn.spoj.com/problems/QMAX4/ http://vn.spoj.com/problems/LITES/ http://vn.spoj.com/problems/MARBLE/ 15 Cấu trúc dữ liệu đặc biệt C KẾT LUẬN Interval tree là một trong những cấu trúc dữ liệu đặc biệt, nó giúp ta có thể giải được nhiều bài toán trong thời... ngắn vừa tìm hiểu và vừa viết chuyên đề này nên không thể tránh khỏi thiếu sót mong sự góp ý của thầy cô và các em học sinh để chuyên đề này hoàn thiện hơn 16 Cấu trúc dữ liệu đặc biệt D TÀI LIỆU THAM KHẢO 1 Giải thuật và lập trình của thầy Lê Minh Hoàng 2 Bài tập trên Website:www.spoj 3 Một số vấn đề đáng chú ý trong môn tin học của thầy Phan Công Minh chủ biên 4 Tài liệu của thầy Trần Đỗ Hùng 17.. .Cấu trúc dữ liệu đặc biệt xuli; close(input); close(output); end Bài 3 Tương tự như bài 2 Dữ liệu vào file QMAX2.INP - n là số phần tử của dãy - m là số lượng biến đổi và câu hỏi + biến đổi có dạng: 0 x y value + câu hỏi có dạng: 1 x y Dữ liệu ra file QMAX2.OUT Ghi ra trả lời cho lần lượt từng câu hỏi Ví dụ: QMAX2.INP... reset(input); assign(output,fo); rewrite(output); xuli; close(input); 13 Cấu trúc dữ liệu đặc biệt close(output); end Bài 4 Cho một dãy số A[1 N] gồm N số nguyên đánh số từ 1 đến N là A[1], A[2], , A[N] Yêu cầu có m truy vấn ứng với mỗi truy vấn hãy xác định độ chênh lệch giữa các phần tử nhỏ nhất và lớn nhất trong dãy số từ vị trí i đến vị trí j Dữ liệu vào: file DIFF.INP - Dòng đầu tiên chứa hai số nguyên N,... T[i]:=max(t[i*2],t[i*2+1]); end; {==================================================} procedure find(i,l,r,u,v:longint; var GTLN: longint); var mid,maxL,maxR:longint; begin if (r ... thời gian ngắn vừa tìm hiểu vừa viết chuyên đề nên tránh khỏi thiếu sót mong góp ý thầy cô em học sinh để chuyên đề hoàn thiện 16 Cấu trúc liệu đặc biệt D TÀI LIỆU THAM KHẢO Giải thuật lập trình... http://vn.spoj.com/problems/LITES/ http://vn.spoj.com/problems/MARBLE/ 15 Cấu trúc liệu đặc biệt C KẾT LUẬN Interval tree cấu trúc liệu đặc biệt, giúp ta giải nhiều toán thời gian cho phép Độ phức tạp thông... biến đổi Dữ liệu ra: file QMAX.OUT gồm q dòng tương ứng kết yêu cầu liệu vào Ví dụ: QMAX.INP QMAX.OUT 62 132 463 34 Giới hạn: 1≤ N≤ 100000; |Ai|≤ 1000, M≤ 100000 Nhận xét Cấu trúc liệu đặc biệt −