題目描述
有乙隻烏龜,初始在0的位置向右跑。
這只烏龜會依次接到一串指令,指令t表示向後轉,指令f表示向前移動乙個單位。烏龜不能忽視任何指令。
現在我們要修改其中正好n個指令(乙個指令可以被改多次,一次修改定義為把某乙個t變成f或把某乙個f變成t)。
求這只烏龜在結束的時候離起點的最遠距離。(假設烏龜最後的位置為x,我們想要abs(x)最大,輸出最大的abs(x))
輸入描述:
第一行乙個字串c表示指令串。c只由f和t構成。
第二行乙個整數n。
1 <= |c| <= 100, 1 <= n <= 50
輸出描述:
乙個數字表示答案。
示例1輸入
複製ft1輸出
複製2示例2輸入
複製ffftfff2輸出
複製6很好的一道記憶化搜尋的題目。感覺記憶化搜尋比dp好理解一些。
dp[i][fz][pos][dec]代表著到了第i個指令,還有fz次的反轉機會,到了pos位置,方向是dec(0/1)。
具體解釋看**
#include
#define ll long long
using
namespace std;
int dp[
101][51
][201][2
];string s;
int ans;
int n;
inline
void
dfs(
int i,
int fz,
int pos,
int dec)
if(fz<
0||dp[i]
[fz]
[pos+
100]
[dec]
)return
;//如果沒有反轉次數了,或者這種情況已經出現過了。
dp[i]
[fz]
[pos+
100]
[dec]=1
;//這種情況標記為1。
if(s[i]
=='f'
)else
if(s[i]
=='t')}
intmain()
努力加油a啊,(o)/~ NC16590 烏龜棋 記憶化搜尋
題目鏈結 題意 有 n個 格仔,1 為起點,n為終點 有n個格仔,1為起點,n為終點 有n個格仔,1為起點 n為終點每個 格仔有一 個分 數每個格仔有乙個分數 每個格仔有一 個分數有m種 卡片,每 種卡片有 數字1,2,3,4有m種卡片,每種卡片有數字1,2,3,4 有m種卡片,每種卡片 有數字1 ...
P1541 烏龜棋 記憶化搜尋
小明過生日的時候,爸爸送給他一副烏龜棋當作禮物。烏龜棋的棋盤是一行nn個格仔,每個格仔上乙個分數 非負整數 棋盤第1格是唯一的起點,第nn格是終點,遊戲要求玩家控制乙個烏龜棋子從起點出發走到終點。烏龜棋中mm張爬行卡片,分成4種不同的型別 mm張卡片中不一定包含所有44種型別的卡片,見樣例 每種型別...
牛客 烏龜跑步
有乙隻烏龜,初始在0的位置向右跑。這只烏龜會依次接到一串指令,指令t表示向後轉,指令f表示向前移動乙個單位。烏龜不能忽視任何指令。現在我們要修改其中正好n個指令 乙個指令可以被改多次,一次修改定義為把某乙個t變成f或把某乙個f變成t 求這只烏龜在結束的時候離起點的最遠距離。假設烏龜最後的位置為x,我...