之前並沒有想過求解 最長回文子串行 的方法,但是自己想想也是沒有什麼好的辦法可以求出 最長回文子串行 來,而最近遇到了一道題目,在經過問題分析,轉化之後,其根本的問題就是 最長回文子串行 的求解問題。
==題意:
兩隻兔子在乙個由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 ...