Mình muốn hỏi ý tưởng và thuật toán của bài này:
(Croatia HSIN 2005 - THCS - ngày 1, bài 3) Tưởng tượng một con đường đơn giản trong hệ toạ độ. Đường đi từ trái sang phải theo hình dạng của mặt đất và trong một ô có thể: giữ nguyên độ cao, đi lên hoặc đi xuống 1 ô.
Ô tô đi trên con đường theo hướng từ trái sang phải. Thời gian cần thiết để đi thẳng qua 1 ô là A giây, và lên hoặc xuống I ô là B giây.
Tuy vậy, chúng ta có thể xây dựng một đường hầm dưới những ngọn núi hay một chiếc cầu qua những thung lũng. Những đường hầm hay cầu được xây dựng phải được nằm ngang, chỉ giao cắt với con đường tại 2 điểm đầu cuối, và thời gian cần để ô tô di chuyển qua một ô bằng đường hầm hoặc qua cầu là C giây.
Viết chương trình tính toán thời gian ngắn nhất để ô tô đi hết cả quãng đường qua những đường hầm và cầu tốt nhất, với hình dạng mặt đất cho trước. Tổng số đường hầm hoặc câu xây dựng không lớn hơn số K cho trước.
Dữ liệu: vào từ file inp.txt
-
Dòng đầu tiên chứa 3 số nguyên A, B, và C, 1 <= A, B, C <= 100.
-
Dòng thứ 2 chứa 2 số nguyên N và K, 1 <= N <= 30000, 1 <= K <= 1000.
-
Dòng thứ 3 chứa dãy kí hiệu mô tả mặt đất từ trái sang phải, trong đó:
-
‘D’ nếu ô tiếp theo trên mặt đất có hướng đi xuống.
-
‘R’ nếu ô tiếp theo trên mặt đất giữ nguyên độ cao.
-
‘G’ nếu ô tiếp theo trên mặt đất có hướng đi lên.
Kết quả: Ghi ra file out.txt thời gian ngắn nhất kết quả của đề bài đã cho.
INP.TXT:
10 20 15
16 2
RGRDGGDDRRDDRDGG
OUT.TXT:
235
Hình minh hoạ cho ví dụ:
Cảm ơn các bạn.