LCS 51NOD 1092 回文字串

2021-07-24 04:07:40 字數 635 閱讀 7490

1092 回文字串

基準時間限制:1 秒 空間限制:131072 kb 分值: 10 

難度:2級演算法題

回文串是指aba、abba、cccbccc、aaaa這種左右對稱的字串。每個字串都可以通過向中間新增一些字元,使之變為回文字串。

例如:abbc 新增2個字元可以變為 acbbca,也可以新增3個變為 abbcbba。方案1只需要新增2個字元,是所有方案中新增字元數量最少的。

input

輸入乙個字串str,str的長度 <= 1000。
output

輸出最少新增多少個字元可以使之變為回文字串。
input示例

abbc
output示例

思路:第一次知道這回文串還能和lcs聯絡在一起。還是太年輕啊!。

把串倒置,然後找到兩個串的最長公共子串行。

原因:增加乙個字元使其程式設計回文與刪除這個對應的字串的效果相同

#include #include #include using namespace std;

int dp[1005][1005];

int main()

}cout<

51NOD 1092 回文字串 LCS

q 給定乙個串,問需要插入多少字元才能使其成為回文串,也就是左右對稱的串。經典求lcs題,即最長公共子串行,不用連續的序列。考慮o n2 解法,求lcs起碼得有兩個串,題中才給了乙個串,另乙個需要自己造,將給定的串反置,然後求這兩個串的lcs。假設兩個串為str1和str2,想辦法將規模降低,分兩種...

51Nod 1092 回文字串 LCS跟dp

1092 回文字串 基準時間限制 1 秒 空間限制 131072 kb 分值 10 難度 2級演算法題 回文串是指aba abba cccbccc aaaa這種左右對稱的字串。每個字串都可以通過向中間新增一些字元,使之變為回文字串。例如 abbc 新增2個字元可以變為 acbbca,也可以新增3個變...

1092 回文字串(LCS)

1 秒131,072 kb 10 分 2 級題 回文串是指aba abba cccbccc aaaa這種左右對稱的字串。每個字串都可以通過向中間新增一些字元,使之變為回文字串。例如 abbc 新增2個字元可以變為 acbbca,也可以新增3個變為 abbcbba。方案1只需要新增2個字元,是所有方案...