Pannenkoek2012 ma na celu ukończenie Super Mario 64 przy jak najmniejszej liczbie naciśnięć przycisku A, co powoduje, że Mario skacze. Każda „prasa” składa się z trzech części:
- Naciśnięcie przycisku
- Trzymając go przez dowolny czas
- Zwolnienie go
Zobacz to wideo (1:15 - 3:23), aby uzyskać świetne wyjaśnienie obejmujące powyższy obraz. (Jednak to wyzwanie nie będzie korzystało z terminologii pół-A i będzie stanowić przeszkodę wymagającą zwolnienia A.)
Zadanie:
Biorąc pod uwagę sekwencję przeszkód wymagających naciśnięcia (P), przytrzymania (H) lub zwolnienia (R) przycisku A, wypisz najmniejszą liczbę naciśnięć wymaganych do ich pokonania w podanej kolejności. Przycisk A początkowo nie jest trzymany.
Formalnie sformułowane: biorąc pod uwagę ciąg S znaków PHR
, rozważ ciągi znaków (PH*R)*
zawierające S jako podsekwencję i wyprowadzaj najmniejszą możliwą liczbę P
takich ciągów. Lub, alternatywnie, znajdź najmniejszą liczbę części formy, na P?H*R?
którą można podzielić S.
Przykład
Spójrzmy na dane wejściowe RHRPHHHR
. Przycisk A nie zaczyna się przytrzymywać, więc pokonanie początkowej przeszkody R
wymaga naciśnięcia i zwolnienia przycisku (naciśnij # 1). Następnie musimy przytrzymać przycisk H
, który ponownie wymaga pierwszego naciśnięcia (naciśnij # 2). Następnie można go później zwolnić, aby zaspokoić R
później. Wreszcie, pozostałe PHHHR
można zaspokoić pojedynczym naciśnięciem (naciśnij 3), a następnie przytrzymaniem HHH
i zwolnieniem R
. Tak więc liczba wyjść wynosi 3.
Innym sposobem, aby to zobaczyć, jest to, że możemy podzielić ciąg wejściowy na 3 części formularza, w PHH..HHR
których litery można pominąć.
R
HR
PHHHR
Format wejściowy
Dane wejściowe będą listą lub ciągiem elementów reprezentujących naciśnięcie, przytrzymanie i zwolnienie jako wybór:
P, H, R
p, h, r
1, 2, 3
0, 1, 2
dopasowane w podanej kolejności. Dane wejściowe nie będą puste.
Przypadki testowe:
P 1
H 1
R 1
HP 2
RHP 3
HHR 1
PHRH 2
RHRPHHHR 3
HHHHHH 1
PPRRHHPP 6
HPPRHRPRHPPRHPPHRP 12
PRHRHPHHPRRRHPPRHHPPRRRHRHPRPHPRPRHHRPPPRHPRP 28
Tabela liderów: