Slide thuật toán ứng dụng chương 5 phần 2 quy hoạch động

6 43 0
Slide thuật toán ứng dụng chương  5 phần 2 quy hoạch động

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

Thông tin tài liệu

.c om an co ng THUẬT TOÁN ỨNG DỤNG cu u du o ng th QUY HOẠCH ĐỘNG Range Minimum Query Phạm Quang Dũng Bộ môn KHMT dungpq@soict.hust.edu.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt .c om Bài toán Range Minimum Query RMQ  Cho dãy a[0], a[1], …, a[N-1] Với số ≤ i < j 6 th 10 11 12 du o ng an co ng ≤ N -1, thực truy vấn RMQ(i, j) tìm trả số phần tử nhỏ dãy a[i], a[i+1],…, a[j] cu u RMQ(1,7) = RMQ(6,11) = CuuDuongThanCong.com https://fb.com/tailieudientucntt .c om Bài toán Range Minimum Query RMQ  Ký hiệu M[j, i] số phần tử nhỏ dãy a[i], 10 11 12 13 14 15 an ng 10 11 12 13 14 15 10 11 12 13 14 15 cu 6 0 1 3 8 10 12 12 13 15 - 3 3 8 8 12 12 12 12 - - - 3 3 12 12 12 12 - - - - - - - 12 - - - - - - - - - - - - - - - u du o th co ng a[i+2],…, a[i+2j -1] (dãy số i có độ dài 2j) CuuDuongThanCong.com https://fb.com/tailieudientucntt .c om Bài toán Range Minimum Query RMQ  Bài toán nhỏ M[0,i] = i, i = 0,…, N-1 co M[j-1,i] a[M[j-1,i]] < a[M[j-1,i+2j-1] M[j-1,i+2j-1], ngược lại th an  M[j,i] = ng  Công thức truy hồi i i + 2j-1 i + 2j - cu u du o ng i+2j-1 -1 M[j-1,i + 2j-1] M[j-1,i] M[j, i] CuuDuongThanCong.com https://fb.com/tailieudientucntt preprocessing(){ ng for (i = 0; i < N; i++) M[0,i] = i; c om Bài toán Range Minimum Query RMQ co for (j = 0; 2j ≤ N; j++){ an for(i = 0; i + 2j -1 < N; i++){ ng M[j,i] = M[j-1,i]; th if a[M[j-1,i]] < a[M[j-1,i+2j-1]] then{ du o }else{ } cu } u M[j,i] = M[j-1,i+2j-1]; } } CuuDuongThanCong.com https://fb.com/tailieudientucntt .c om Bài toán Range Minimum Query RMQ  Truy vấn RMQ(i,j) ng  k = [log(j-i+1)] co  RMQ(i,j) = M[k,i] a[M[k,i]] ≤ a[M[k, j-2k+1]] ng th an M[k, j-2k+1]], ngược lại  RMQ(4,14) = ? du o  k = [log(14-4+1)]=3  a[7] > a[12]  RMQ(4,14) = 12 cu u M[3,7] = 12 10 11 12 13 14 15 6 3 6 M[3,4] = CuuDuongThanCong.com https://fb.com/tailieudientucntt ... om Bài toán Range Minimum Query RMQ  Ký hiệu M[j, i] số phần tử nhỏ dãy a[i], 10 11 12 13 14 15 an ng 10 11 12 13 14 15 10 11 12 13 14 15 cu 6 0 1 3 8 10 12 12 13 15 - 3 3 8 8 12 12 12 12 - -... 3 3 12 12 12 12 - - - - - - - 12 - - - - - - - - - - - - - - - u du o th co ng a[i +2] ,…, a[i+2j -1] (dãy số i có độ dài 2j) CuuDuongThanCong.com https://fb.com/tailieudientucntt .c om Bài toán. .. RMQ  Bài toán nhỏ M[0,i] = i, i = 0,…, N-1 co M[j-1,i] a[M[j-1,i]] < a[M[j-1,i+2j-1] M[j-1,i+2j-1], ngược lại th an  M[j,i] = ng  Công thức truy hồi i i + 2j-1 i + 2j - cu u du o ng i+2j-1 -1

Ngày đăng: 03/09/2021, 12:30

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

Tài liệu liên quan