有乙隻烏龜,初始在0的位置向右跑。
這只烏龜會依次接到一串指令,指令t表示向後轉,指令f表示向前移動乙個單位。烏龜不能忽視任何指令。
現在我們要修改其中正好n個指令(乙個指令可以被改多次,一次修改定義為把某乙個t變成f或把某乙個f變成t)。
求這只烏龜在結束的時候離起點的最遠距離。(假設烏龜最後的位置為x,我們想要abs(x)最大,輸出最大的abs(x))
第一行乙個字串c表示指令串。c只由f和t構成。
第二行乙個整數n。
1 <= |c| <= 100, 1 <= n <= 50
乙個數字表示答案。
ft
1
2
ffftfff
2
6
這個題。。暴力吧,題目每種情況需要有到四個變數,1.遍歷到陣列的下標,2.剩餘的操作次數,3.位置,4.下一步的方向。用dfs列舉所有的情況,改變的和沒有改變的,但是題目要求的資料規模比較大,需要用到記憶搜尋。。
#include
#include
#include
#include
using
namespace std;
string str;
int ans =0;
int mem[
105][55
][205][2
];void
dfs(
int def,
int n,
int pos,
int dir)
if(n <
0|| mem[def]
[n][pos +
105]
[dir]
)return
; mem[def]
[n][pos +
105]
[dir]=1
;if(dir ==0)
else
if(str[def]
=='t')}
else
if(dir ==1)
else
if(str[def]
=='t')}
}int
main()
牛客網 烏龜跑步 (dfs)
有乙隻烏龜,初始在0的位置向右跑。這只烏龜會依次接到一串指令,指令t表示向後轉,指令f表示向前移動乙個單位。烏龜不能忽視任何指令。現在我們要修改其中正好n個指令 乙個指令可以被改多次,一次修改定義為把某乙個t變成f或把某乙個f變成t 求這只烏龜在結束的時候離起點的最遠距離。假設烏龜最後的位置為x,我...
牛客練習賽13 烏龜跑步 DP
有乙隻烏龜,初始在0的位置向右跑。這只烏龜會依次接到一串指令,指令t表示向後轉,指令f表示向前移動乙個單位。烏龜不能忽視任何指令。現在我們要修改其中正好n個指令 乙個指令可以被改多次,一次修改定義為把某乙個t變成f或把某乙個f變成t 求這只烏龜在結束的時候離起點的最遠距離。假設烏龜最後的位置為x,我...
牛客 70E 烏龜跑步 bitset優化dp
有乙隻烏龜,初始在0的位置向右跑。這只烏龜會依次接到一串指令,指令t表示向後轉,指令f表示向前移動乙個單位。烏龜不能忽視任何指令。現在我們要修改其中正好n個指令 乙個指令可以被改多次,一次修改定義為把某乙個t變成f或把某乙個f變成t 求這只烏龜在結束的時候離起點的最遠距離。假設烏龜最後的位置為x,我...