Knapsack vét cạn
Xem dưới dạng PDF
Gửi bài giải
Điểm:
15
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
64M
đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Kiểu bài tập
Alice có một cái ba lô chứa được tối đa \(W\) kg và \(n\) món đồ. Mỗi đồ \(i\) có khối lượng \(w_i\) và giá trị \(v_i\).
Alice muốn chọn một số đồ để bỏ vào ba lô sao cho tổng khối lượng không quá \(W\) và tổng giá trị là lớn nhất.
Vì \(n \le 20\), hãy dùng quay lui (backtracking) kết hợp nhánh cận để tìm giá trị lớn nhất.
Input
Dòng đầu chứa \(n\) và \(W\) (\(1 \le n \le 20\), \(1 \le W \le 10^9\)).
\(n\) dòng tiếp theo, mỗi dòng chứa \(w_i\) và \(v_i\) (\(1 \le w_i \le 10^9\), \(1 \le v_i \le 100\)).
Output
In ra giá trị lớn nhất có thể.
Example
4 10
3 40
5 20
6 30
2 10
Output:
70
Nhận xét