tailieunhanh - Sáng tạo trong thuật toán và lập trình với ngôn ngữ Pascal và C# Tập 1 - Chương 5

PHƯƠNG PHÁP THAM LAM Phương pháp tham lam gợi ý chúng ta tìm một trật tự hợp lí để duyệt dữ liệu nhằm đạt được mục tiêu một cách chắc chắn và nhanh chóng. Thông thường, dữ liệu được duyệt theo một trong hai trật tự là tăng hoặc giảm dần theo một chỉ tiêu nào đó. Một số bài toán đòi hỏi những dạng thức cải biên của hai dạng nói trên. | CHƯƠNG 5 PHƯƠNG PHÁP THAM LAM Sáng tạo trong Thuật toán và Lập trình Tập I 130 Phương pháp tham lam gợi ý chúng ta tìm một trật tự hợp lí để duyệt dữ liệu nhằm đạt được mục tiêu một cách chắc chắn và nhanh chóng. Thông thường dữ liệu được duyệt theo một trong hai trật tự là tăng hoặc giảm dần theo một chỉ tiêu nào đó. Một số bài toán đòi hỏi những dạng thức cải biên của hai dạng nói trên. Bài . Băng nhạc Người ta cần ghi N bài hát được mã số từ 1 đến N vào một băng nhạc có thời lượng tính theo phút đủ chứa toàn bộ các bài đã cho. Với mồi bài hát ta biết thời lượng phát của bài đó. Băng sẽ được lắp vào một máy phát nhạc đặt trong một siêu thị. Khách hàng muốn nghe bài hát nào chỉ việc nhấn phím ứng với bài đó. Đe tìm và phát bài thứ i trên băng máy xuất phát từ đầu cuộn băng quay băng để bỏ qua i - 1 bài ghi trước bài đó. Thời gian quay băng bỏ qua mồi bài và thời gian phát bài đó được tính là như nhau. Tính trung bình các bài hát trong một ngày được khách hàng lựa chọn với số lần tần suất như nhau. Hãy tìm cách ghi các bài trên băng sao cho tông thời gian quay băng trong mồi ngày là ít nhất. Dữ liệu vào được ghi trong tệp văn bản tên . - Dòng đầu tiên là số tự nhiên N cho biết số lượng bài hát. - Tiếp đến là N số nguyên dương thể hiện dung lượng tính theo phút của mỗi bài. Mỗi đơn vị dữ liệu cách nhau qua dấu cách. Thí dụ dưới đây cho biết có N 3 bài hát - Bài 1 phát trong thời gian 7 phút. 3 2 2 - Bài 2 phát trong thời gian 2 phút. 7 2 3 3 5 - Bài 3 phát trong thời gian 3 phút. 1 12 Dữ liệu ra được ghi trong tệp văn bản 19 theo dạng thức sau - N dòng đầu tiên thể hiện trật tự ghi bài hát trên băng m ỗi dòng gồm hai số nguyên dương j và d cách nhau bởi dấu cách trong đó j là mã số của bài hát cần ghi d là thời gian tìm và phát bài đó theo trật tự ghi này. - Dòng thứ n 1 ghi tổng số thời gian quay băng nếu mỗi bài hát được phát một lần trong ngày. Với thí dụ trên kết quả thu được sẽ như sau - Cần ghi lần lượt .

TỪ KHÓA LIÊN QUAN