從資料範圍不難推出可以用f,表示由兩個字串來表示的最長大小
並且因為是回文串,所以我們要向頭尾加字元,來變大,因為這個是回文子串,也就是連續的一段。
#include#includeview code#include
#include
#include
using
namespace
std;
const
int n=55
;char s1[55],s2[55
];int
f[n][n][n][n];
intmain()
else
if(f[l1][r1][l2][r2])
res=max(res,r1-l1+1+r2-l2+1
); }}}
}cout}}
牛客NC13230 合併回文子串
題目鏈結 題目描述 輸入兩個字串a和b,合併成乙個串c,屬於a和b的字元在c中順序保持不變。如 abc 和 xyz 可以被組合成 axbycz 或 abxcyz 等。我們定義字串的價值為其最長回文子串的長度 回文串表示從正反兩邊看完全一致的字串,如 aba 和 xyyx 需要求出所有可能的c中價值最...
合併回文子串 區間dp
題目描述 輸入兩個字串a和b,合併成乙個串c,屬於a和b的字元在c中順序保持不變。如 abc 和 xyz 可以被組合成 axbycz 或 abxcyz 等。我們定義字串的價值為其最長回文子串的長度 回文串表示從正反兩邊看完全一致的字串,如 aba 和 xyyx 需要求出所有可能的c中價值最大的字串,...
區間dp 合併回文子串
dp i j k p 表示a串的 i,j 和b串的 k,p 能否通過交叉且保持原有順序不變形成回文串。4維dp,先列舉長度,再列舉位置,狀態合法則貢獻答案。include using namespace std typedef long long ll 三年競賽一場空,不開long long見祖宗 ...