牛客練習賽13 烏龜跑步 DP

2022-05-29 08:18:07 字數 1059 閱讀 5135

有乙隻烏龜,初始在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

ft

1

2
示例2

ffftfff

2

6

分析:dp[i][j][k][dir]表示到第i個字元,用來j次操作,

能否到達k並朝向dir方向,用0和1表示兩個方向。

#include#include

#include

#include

using

namespace

std;

char s[111

];//

dp[i][j][k][op]表示到第i個字元,用來j次操作,

//能否到達k並朝向op方向

//0和1分別表示兩個方向

int dp[102][52][210][2

];int

main()

else

}int ans=0

;

for(int k=0;k<=200;k++)

if(dp[len][m][k][0]||dp[len][m][k][1]) ans=max(ans,abs(k-100

)); printf(

"%d\n

",ans);

return0;

}

view code

牛客 烏龜跑步

有乙隻烏龜,初始在0的位置向右跑。這只烏龜會依次接到一串指令,指令t表示向後轉,指令f表示向前移動乙個單位。烏龜不能忽視任何指令。現在我們要修改其中正好n個指令 乙個指令可以被改多次,一次修改定義為把某乙個t變成f或把某乙個f變成t 求這只烏龜在結束的時候離起點的最遠距離。假設烏龜最後的位置為x,我...

牛客練習賽13 幸運數字

定義乙個數字為幸運數字當且僅當它的所有數字都是4或者7。比如說,47 744 4都是幸運數字而5 17 467都不是。假設現在有乙個數字d,現在想在d上重複k次操作。假設d有n位,用d1,d2,dn表示。對於每次操作,我們想要找到最小的x x n 使得dx 4並且dx 1 7。如果x為奇數,那麼我們...

牛客練習賽13 幸運數字

定義乙個數字為幸運數字當且僅當它的所有數字都是4或者7。比如說,47 744 4都是幸運數字而5 17 467都不是。定義next x 為大於等於x的第乙個幸運數字。給定l,r,請求出next l next l 1 next r 1 next r 兩個整數l和r 1 l r 1000,000,000...