dp 51nod 1154 回文串劃分

2021-08-05 18:35:15 字數 563 閱讀 2471

link:

#include using namespace std;

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

題解:暴力預處理出每位能到達範圍,dp可以由當前處理位置選擇多長回文串轉移。

*/const int n = 5005;

const int inf = 0x3f3f3f3f;

int ma[n],mb[n],len;

char s[n];

void ma(int x)

void mb(int x)

int dp[n]; //處理到i為中心的回文串 的最小劃分數

int main()

dp[0] = 0;

for(int i = 1; i <= len; i++)

// for(int i = 1; i <= len; i++)

// printf("%d\n",dp[i]);

printf("%d\n",dp[len]);

return 0;

}

51nod 1154回文串劃分 dp 遞推

題意 有乙個字串s,求s最少可以被劃分為多少個回文串。例如 abbaabaa,有多種劃分方式。a bb aabaa 3 個回文串 a bb a aba a 5 個回文串 a b b a a b a a 8 個回文串 其中第1種劃分方式的劃分數量最少。分析 剛開始以為類似abab這樣的字串也是回文的,...

51NOD 1154 回文串的劃分(DP)

思路 參考了網上,思路很清奇,借助vis i j 來表示從i到j是否為回文串,回文串這邊是用的雙重迴圈來寫的 dp i 用來表示以i結尾的字串最少的回文串有多長。include include include using namespace std const int maxn 5e3 10 int...

51nod1154回文串劃分

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