1154 回文串劃分

2021-07-31 22:53:28 字數 782 閱讀 7066

1154 回文串劃分

基準時間限制:1 秒 空間限制:131072 kb 分值: 40 難度:4級演算法題 收藏 關注

有乙個字串s,求s最少可以被劃分為多少個回文串。

例如:abbaabaa,有多種劃分方式。

a|bb|aabaa - 3 個回文串

a|bb|a|aba|a - 5 個回文串

a|b|b|a|a|b|a|a - 8 個回文串

其中第1種劃分方式的劃分數量最少。

input

輸入字串s(s的長度<= 5000)。

output

輸出最少的劃分數量。

input示例

abbaabaa

output示例

3也是水題吧 實現有點技巧

暴力的找 更新最小值

dp[i]代表字串到i最小分配的數量

dp[i]的**有兩個,當前的最小值,和回文串前的最小值。

每次查詢到就更新

因為用了manacher 所以 對dp陣列進行擴充。

#include

#include

using

namespace

std;

int dp[15005];

int main()

a+="#";

for(int i=0;a[i];i++)

//coutfor(int i=2;a[i];i++)

}//cout<1]<}

}

1154 回文串劃分

有乙個字串s,求s最少可以被劃分為多少個回文串。例如 abbaabaa,有多種劃分方式。a bb aabaa 3 個回文串 a bb a aba a 5 個回文串 a b b a a b a a 8 個回文串 其中第1種劃分方式的劃分數量最少。input 輸入字串s s的長度 5000 output...

1154 回文串劃分(dp)

1154 回文串劃分 基準時間限制 1 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 有乙個字串s,求s最少可以被劃分為多少個回文串。例如 abbaabaa,有多種劃分方式。a bb aabaa 3 個回文串 a bb a aba a 5 個回文串 a b b a a b a a...

51nod1154回文串劃分

這道題目剛開始想錯了,本來打算每次找到最大的回文串,結果自己給自己駁倒了,比如dabbbbbdb,最長回文子串是bbbbb,結果四個落單,一共是五個,而如果把最後的bdb放在一組,就一目了然了,4個,所以這種是不行的,到底該如何做呢 dp j 代表了讀到第j個字元的時候出現的回文串最小有多少個 k ...