1. Trang chủ
  2. » Cao đẳng - Đại học

Slide thuật toán ứng dụng chương 5 cấu trúc deque

6 9 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 150,93 KB

Nội dung

.c om th an co ng THUẬT TOÁN ỨNG DỤNG cu u du o ng CẤU TRÚC DEQUE Phạm Quang Dũng Bộ môn KHMT dungpq@soict.hust.edu.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt .c om DEQUE  Cấu trúc liệu tuyến tính có tính chất ngăn ng xếp hàng đợi: co  Thêm phần tử vào cuối deque an  Lấy phần tử đầu deque th  Lấy phần tử cuối deque ng  Trong C++ du o  Khai báo: deque u  Phương thức: push_back(), push_front(), pop_front(), cu pop_back(), back(), front(), empty() CuuDuongThanCong.com https://fb.com/tailieudientucntt .c om Quy hoạch động sử dụng deque  Cho dãy a1, a2, …, an số nguyên dương L1 < L2 cu u du o ng th an co ng Hãy tìm dãy ≤ j1 < j2 < … < jk ≤ n cho L1 ≤ jq+1 – jq ≤ i2 , , …, có tổng cực đại CuuDuongThanCong.com https://fb.com/tailieudientucntt .c om Quy hoạch động sử dụng deque  Định nghĩa toán ng  S(i): tổng cực đại dãy dãy a1, …, thỏa mãn co đề mà phần tử cuối an  Công thức quy hoạch động cu u du o ng th  S(i) = max(ai + S(j) | L1 ≤ i – j ≤ L2} CuuDuongThanCong.com https://fb.com/tailieudientucntt .c om Quy hoạch động sử dụng deque  Định nghĩa tốn  Cơng thức quy hoạch động co mà phần tử cuối ng  S(i): tổng cực đại dãy dãy a1, …, thỏa mãn đề an  S(i) = max(ai + S(j) | L1 ≤ i – j ≤ L2} th  Khởi tạo deque, lưu trữ số j cho S(j) không tăng du o ng ứng cử viên để tính tốn toán S(i)  Mỗi xét đến số i (i = 1,…, n)  Đưa hết số j đầu deque j < i – L2 ngồi (vì cu u ko ứng cử viên để xác định S(i), S(i+1),…)  Đưa hết số j cuối deque S(j) < S(i-L1) (do số j khơng có ý nghĩa việc xác định S(i), S(i+1),… CuuDuongThanCong.com https://fb.com/tailieudientucntt .c om Quy hoạch động sử dụng deque for(int i = 1; i = 1){ co int n,L1,L2,ans; an int main(){ cin.tie(0); q.pop_back(); q.push_back(i-L1); ng cin >> n >> L1 >> L2; } S[i] = a[i] + (q.empty() ? : S[q.front()]); u cu ans = 0; du o for(int i = 1; i > a[i]; while(!q.empty() && S[q.back()] < S[i- L1]) th ios_base::sync_with_stdio(0); deque q; i - L2)) ng const int N = 1e6+1; ans = max(ans,S[i]); } cout ... du o ng ứng cử viên để tính tốn toán S(i)  Mỗi xét đến số i (i = 1,…, n)  Đưa hết số j đầu deque j < i – L2 ngồi (vì cu u ko ứng cử viên để xác định S(i), S(i+1),…)  Đưa hết số j cuối deque. .. sử dụng deque  Định nghĩa tốn  Cơng thức quy hoạch động co mà phần tử cuối ng  S(i): tổng cực đại dãy dãy a1, …, thỏa mãn đề an  S(i) = max(ai + S(j) | L1 ≤ i – j ≤ L2} th  Khởi tạo deque,

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

TỪ KHÓA LIÊN QUAN