動態規劃 最長回文子串行

2021-06-25 18:10:37 字數 602 閱讀 2160

之前並沒有想過求解 最長回文子串行 的方法,但是自己想想也是沒有什麼好的辦法可以求出 最長回文子串行 來,而最近遇到了一道題目,在經過問題分析,轉化之後,其根本的問題就是 最長回文子串行 的求解問題。

==題意:

兩隻兔子在乙個由n個數字組成的環上,乙隻只能順時針跳,另乙隻只能逆時針跳。跳的規則如下:

1、以前跳過了就不要再跳到這個點

2、不能跨過以前跳過的點 比如說以前走過2了,那麼這次在1號點的話,就不能到2,3,4……  如果是順時針的話

3、每一時刻兩隻兔子所在的點權值都必須一樣

問題解決辦法:

轉化成找這個環上的 最長回文子串行 問題。則兩個兔子可以從某一點出發就可以完成題目要求的跳的過程。

解決**:

#include#include#include#includeusing namespace std;

const int maxn = 1005;

int a[maxn];

int d[maxn][maxn];///d[i][j]表示從位置i到位置j這一段中的最長回文子串行;

int main()

}int ans = 1;

for(int i=1;i

動態規劃之最長回文子串行

15 2 最長回文子串行 回文 palindrome 是正序與逆序相同的非空字串。例如,所有長度為1的字串,civic,racecar,aibohphobia都是回文。設計高效演算法,求給定輸入字串的最長回文子串行。例如,給定輸入character,演算法應該返回carac.演算法的執行時間是怎麼樣...

動態規劃(二)最長回文子串行

所說的子串行不一定是連續的,但是順序不變。子串必須是連續的字元組成。最優子結構 假設s i j 是給定的字串,長度為n,讓dp i j 表示從s i 到s j 包含的最長回文子串行的長度。初始化 dp i i 1 如果s i s j dp i j dp i 1 j 1 2 如果s i s j dp ...

最長回文子串行 動態規劃

所謂回文字串,就是乙個字串,從左到右讀和從右到左讀是完全一樣的,比如 aba c 對於乙個字串,可以通過刪除某些字元而變成回文字串,如 cabebaf 刪除 c e f 後剩下子串 abba 就是回文字串。要求,給定任意乙個字串,字串最大長度1000,計算出最長的回文子串行長度。如 cabebaf ...