#5390. Bài toán cái túi 0/1 (Mã bài: KS01)

Bộ nhớ: 256 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Một tên trộm có một cái túi với sức chứa tối đa là W . Tên trộm đột nhập vào một cửa hàng có N món đồ, món đồ thứ i có trọng lượng w_i và giá trị v_i . Tên trộm phải quyết định chọn hoặc không chọn mỗi món đồ (không thể lấy một phần). Hãy giúp tên trộm chọn các món đồ để tổng giá trị thu được là lớn nhất mà không vượt quá sức chứa của túi. Hãy giải bài toán này bằng thuật toán Nhánh và Cận.

Dữ liệu:

  • Dòng đầu tiên chứa hai số nguyên N W .
  • N dòng tiếp theo, mỗi dòng chứa hai số nguyên w_i v_i .

Kết quả: Một số nguyên duy nhất là tổng giá trị lớn nhất có thể.

Ví dụ:

Ví dụ:

Dữ liệu:

4 10
5 10
4 40
6 30
3 50

Kết quả:

90

Giải thích: Chọn món đồ thứ 2 (trọng lượng 4 , giá trị 40 ) và món đồ thứ 4 (trọng lượng 3 , giá trị 50 ). Tổng trọng lượng là 7 , tổng giá trị là 90 .

Giới hạn:

  • 1 \le N \le 20 .
  • 1 \le W, w_i, v_i \le 1000 .