Bài toán cái túi

Xem dạng PDF

Gửi bài giải

Điểm: 100,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Python
Bài toán cái túi
Mô tả và yêu cầu

Bài toán cái túi
Cho 𝑛 vật được đánh số thứ tự từ 1 đến 𝑛, vật thứ 𝑖 có khối lượng 𝑚𝑖 và giá trị là 𝑣𝑖. Bạn
có 𝑘 cái túi được đánh thứ tự từ 1 đến 𝑘, cái túi thứ 𝑖 có có thể chứa vật có khối lượng tối
đa là 𝑤𝑖. Bạn muốn tìm cách đặt các vật vào các túi sao cho mỗi túi chỉ chứa tối đa một vật
và tổng giá trị các vật trong các túi là lớn nhất có thể.
Yêu cầu: Hãy lập trình xác định giá trị lớn nhất tìm được.
Dữ liệu vào: cho trong file văn bản caitui.inp có cấu trúc như sau:
 Dòng đầu ghi hai số nguyên dương 𝑛 và 𝑘.
 𝑛 dòng tiếp theo, dòng thứ 𝑖 trong 𝑛 dòng này ghi hai số nguyên dương 𝑚𝑖 và 𝑣𝑖
(𝑚𝑖, 𝑣𝑖 ≤ 106).
 𝑘 dòng tiếp theo, dòng thứ 𝑖 trong 𝑘 dòng này ghi một số nguyên dương
𝑤𝑖 (𝑤𝑖 ≤ 109).
Kết quả: ghi ra file văn bản caitui.out chỉ một số là kết quả tìm được.

Ví dụ
caitui.inp                 caitui.out
                             3 2                        17
                             1 7
                             5 9
                             4 10
                             2
                             10
Giới hạn:
       50% số test tương ứng với 50% số điểm có 𝑛,             𝑘  ≤  5000.
       50% số test tương ứng với 50% số điểm có 𝑛,             𝑘  ≤  3 ×  105.

Tải PDF gốc


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.