pannenkoek2012 đặt mục tiêu hoàn thành Super Mario 64 với càng ít lần nhấn nút A càng tốt, khiến Mario nhảy lên. Mỗi "Một ấn" bao gồm ba phần:
- Nhấn nút
- Giữ nó trong bất kỳ khoảng thời gian nào
- Phát hành nó
Xem video này (1:15 - 3:23) để được giải thích tuyệt vời bao gồm hình ảnh trên. (Tuy nhiên, thách thức này sẽ không sử dụng thuật ngữ báo chí nửa A và sẽ đặt ra những trở ngại đòi hỏi phải giải phóng A.)
Bài tập:
Đưa ra một chuỗi các chướng ngại vật cần nhấn (P), giữ (H) hoặc nhả (R) nút A, xuất ra số lần nhấn nhỏ nhất cần thiết để vượt qua chúng theo thứ tự đã cho. Nút A ban đầu không được giữ.
Được nêu chính thức: đưa ra một chuỗi ký tự S PHR
, xem xét các chuỗi có dạng (PH*R)*
S là một chuỗi con và xuất ra số lượng nhỏ nhất có thể có P
trong một chuỗi như vậy. Hoặc, thay vào đó, tìm số lượng nhỏ nhất của biểu mẫu P?H*R?
mà S có thể được chia thành.
Thí dụ
Hãy nhìn vào đầu vào RHRPHHHR
. Nút A bắt đầu không được giữ, do đó, vượt qua chướng ngại vật ban đầu R
đòi hỏi phải nhấn nút và sau đó nhả ra (nhấn # 1). Tiếp theo, chúng tôi được yêu cầu giữ nút H
, một lần nữa yêu cầu nhấn nút đầu tiên (nhấn # 2). Sau đó, nó có thể được phát hành sau đó để đáp ứng R
sau đó. Cuối cùng, phần còn lại PHHHR
có thể được thỏa mãn chỉ bằng một lần nhấn (nhấn # 3) sau đó giữ HHH
và phát hành R
. Vì vậy, số lượng đầu ra là 3.
Một cách khác để xem nó, là chúng ta có thể chia chuỗi đầu vào thành 3 phần của biểu mẫu PHH..HHR
nơi các chữ cái có thể bị bỏ qua.
R
HR
PHHHR
định dạng đầu vào
Đầu vào sẽ là một danh sách hoặc chuỗi các yếu tố đại diện cho báo chí, giữ và phát hành theo lựa chọn của bạn:
P, H, R
p, h, r
1, 2, 3
0, 1, 2
phù hợp theo thứ tự cho trước. Đầu vào sẽ không trống.
Các trường hợp thử nghiệm:
P 1
H 1
R 1
HP 2
RHP 3
HHR 1
PHRH 2
RHRPHHHR 3
HHHHHH 1
PPRRHHPP 6
HPPRHRPRHPPRHPPHRP 12
PRHRHPHHPRRRHPPRHHPPRRRHRHPRPHPRPRHHRPPPRHPRP 28
Bảng xếp hạng: