[r]
Trang 1Bai Toan 5 - 1992
2 Câu lạc bộ leo núi
Một câu lạc bộ leo núi có P thành viên được đánh số từ 1 đến P Tất cả các thành viên đều leo núi với cùng vận tốc; vận tốc leo và vận tốc leo xuống là như nhau Vận động viên leo núi i mỗi ngày dùng hết C(i) đơn vị đồ dùng và anh ta có thể mang theo toàn bộ số đồ dùng S(i) được cấp đó C(i) và S(i) đều là số nguyên
Giả sử một người leo núi với số đồ dùng được cấp đủ mất N ngày để lên đến đỉnh núi Đỉnh núi
có thể quá cao khiến người leo núi không thể mang theo tất cả đồ dùng lên đến đỉnh Do đó, một nhóm người leo núi cùng xuất phát ở một chỗ tại cùng một thời điểm Một người leo núi xuống sức trước khi lên đến đỉnh sẽ chuyển toàn bộ số đồ dùng mang theo cho người khác Nhóm leo núi không nghỉ trong suốt chuyến đi
Bài toán yêu cầu lập kế hoạch giúp câu lạc bộ leo núi Ít nhất một người leo núi phải lên đến dỉnh núi và tất cả những người còn lại sẽ trở lại điểm khởi hành
Yêu cầu
Hãy viết chương tình thực hiện các nhiệm vụ sau:
1 Nhập từ bàn phím số nguyên N chỉ số ngày cần thiết để lên đến đỉnh núi, số người leo núi P của câu lạc bộ, số đồ dùng được cấp S(i) và số đồ dùng cần thiết C(i) của người thứ i (i nằm từ 1 đến P) Giả sử dữ liệu vào đều là số nguyên
2 Lập kế hoạch cho câu lạc bộ leo núi Xác định các nhóm leo núi a(1), , a(k) và số đồ dùng được cấp M(j) mà người leo núi (j) mang theo lúc khởi hành (j nằm từ 1 đến k) Chú ý, có thể không tồn tại một kế hoạch cho cho sự kết hợp N, S(i) và C(i)
3 Báo cáo các thông tin sau ra màn hình:
a) số người leo núi thực tế k tham gia leo núi,
b) tổng số đồ dùng cần được cấp,
c) số người leo núi a(1), , a(k),
d) với mọi a(j), j nằm giữa 1 và k, tổng số đồ dùng được cấp M(j) được người a(j) mang theo e) ngày D(j) khi số người leo núi a(j) xuống sức
4 Kế hoạch là tối ưu nếu
a) số người tham leo núi là tối thiểu và
b) trong số tất cả các nhóm thỏa mãn điều kiện a), tổng số đồ dùng dùng hết là ít nhất
Hãy cố tìm kế hoạch gần tối ưu
Yêu cầu kỹ thuật
Yêu cầu 1: Lưu chương trình lập kế hoạch vào tệp văn bản ASCII với tên gọi
"C:\IOI\DAY-2\422-PROG.xxx" Phần mở rộng xxx là:
- BAS với chương trình BASIC, C với chương trình C,
- LCN với chương trình LOGO, PAS với chương trình PASCAL
Yêu cầu 2: Chương trình loại bỏ dữ liệu vào với N nhỏ hơn 1 hoặc lớn hơn 100
P phải lớn hơn 1 và nhỏ hơn 20
Ví dụ
ể
Trang 2Có thể so sánh với chương trình của bạn:
Số ngày cần để lên đến đỉnh: 4
Số thành viên câu lạc bộ: 5
Số đồ dùng tối đa cấp cho người leo núi 1 : 7
Mức tiêu thụ hàng ngày của người leo núi 1 : 1
Số đồ dùng tối đa cấp cho người leo núi 2 : 8
Mức tiêu thụ hàng ngày của người leo núi 2 : 2
Số đồ dùng tối đa cấp cho người leo núi 3 : 12
Mức tiêu thụ hàng ngày của người leo núi 3 : 2
Số đồ dùng tối đa cấp cho người leo núi 4 : 15
Mức tiêu thụ hàng ngày của người leo núi 4 : 3
Số đồ dùng tối đa cấp cho người leo núi 5 : 7
Mức tiêu thụ hàng ngày của người leo núi 5 : 1
Cần 2 người leo núi, tổng số đồ dùng cần cung cấp là 10
Người leo núi 1 và 5 sẽ leo tiếp
Người leo núi 1 mang theo 7 đơn vị đồ dùng mất xuống sau 4 ngày
Người leo núi 5 mang theo 3 đơn vị đồ dùng mất xuống sau 1 ngày
Có lập kế hoạch tiếp không (Y/N) Y
Số ngày cần lên đến đỉnh: 2
Số thành viên trong câu lạc bộ: 1
Số đồ dùng tối đa cấp cho người leo núi 1: 3
Mức tiêu thụ hàng ngày của người leo núi 1: 1
Không có ai leo núi
Có lập kế hoạch tiếp không (Y/N) Y
Good bye