NYOJ 37 動態規劃 回文字串

2021-06-19 18:55:17 字數 454 閱讀 1390

#include

#include

#include

using namespace std;

/*狀態: cost[i][j] 表示要將 str 從第j個字元開始,

長度為i的子串變為回文串需要新增的字元個數.這樣

轉移方程為:

cost[0][i] = cost[1][i] = 0; (長度為0和長度為1的串)

當s[j] == s[i+j-1]時 ,字串長度加2, 增加數量不變

cost[i][j] = cost[i-2][j+1];

否則cost[i][j] = min+1;

*/int dp[1010][1010];

char str[1010];

int main()

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

}return 0;

}

nyoj 37 回文字串(動態規劃)

時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 所謂回文字串,就是乙個字串,從左到右讀和從右到左讀是完全一樣的,比如 aba 當然,我們給你的問題不會再簡單到判斷乙個字串是不是回文字串。現在要求你,給你乙個字串,可在任意位置新增字元,最少再新增幾個字元,可以使這個字串成為回文...

NYOJ 37 回文字串

思想 在紙上測試幾組資料,發現先逆轉原來的字串,再用原來的字串跟逆轉後的字串進行比較,求得的最長公共子串行就是回文串,也就是不需要新增的,再用總長度減去最長公共子串行就可以得到最少需要新增的字元數。就簡單了,以前寫過的稍稍改下就直接貼上來了。include includeint f 1001 100...

nyoj 37 回文字串

時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 所謂回文字串,就是乙個字串,從左到右讀和從右到左讀是完全一樣的,比如 aba 當然,我們給你的問題不會再簡單到判斷乙個字串是不是回文字串。現在要求你,給你乙個字串,可在任意位置新增字元,最少再新增幾個字元,可以使這個字串成為回文...