ACM 動態規劃 Palindrome

2021-09-22 08:45:21 字數 549 閱讀 4172

題目大意:給乙個長為n的字串,問最少插入幾個字元成回文串

解題思路:總長-最長公共(原來的和其倒過來的串)子串行(lcs) 

知識詳解——lcs:給出兩個子串行a,b,求長度最大的公共子串行(如152687和2356984——>568或268);不妨設d(i,j)為a,b的lcs,   則最有子結構為::a[i]=b[j]時,d(i,j)=d(i-1,j-1)+1;

否則,d(i,j)=max;複雜度為o(m*n),也可用滾動陣列法優化。

注意:上面的**雖然實現了求解,但是 由於開了乙個c[2005][2005]的陣列所以不幸memory limit exceeded」,

通過觀察不難發

現其最優子結構中每次計算只用到兩層資料,因此可以考錄建立乙個c[2][2005]的動態表來節省空間,**如下:

標籤: 

lcs, 

最長公共子串行

acm 動態規劃

學習參考 就是倒推 尋找遞推式 難點 然後用陣列將資料計算出來 最後直接呼叫得到答案 01揹包問題 for i 0 i 例題一 洛谷oj 開心的金明 include include using namespace std const int max 100001 long long dp max i...

《動態規劃》 ACM 動態規劃例題詳解

描述 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 圖1 圖1給出了乙個數字三角形。從三角形的頂部到底部有很多條不同的路徑。對於每條路徑,把路徑上面的數加起來可以得到乙個和,你的任務就是找到最大的和。注意 路徑上的每一步只能從乙個數走到下一層上和它最近的左邊的那個數或者右邊的那個數。輸...

ACM 動態規劃筆記

2.解決動態規劃問題,要先找出動態轉移方程來,動態轉移方程怎麼找呢?首先得定好,用哪幾個因子,可以明確的表示好乙個狀態,然後,再通過樣例或者特例或者硬想,找出子問題和父問題的關係,或者說,子問題怎麼push,可以影響到父問題?我感覺可以放開思路想,放心大膽的想,假設你不會動態規劃,讓你暴力搜尋,你會...