洛谷P1435 最長公共子串行 思想很重要

2021-08-19 13:45:58 字數 513 閱讀 8745

給乙個字串,求至少插入多少個資料,能使該字串變為回文字串

回文字串,就是從左往右,從右往左,字串還是那個字串

那麼將回文字串倒置,再與源字串求最長公共子串行,顯然結果就是字串的長度

而現在問求至少插入多少個資料,能使該字串變為回文字串,

先將字串倒置,再與源字串求最長公共子串行結果為ret,那麼最少需要插入的字元就為字串長度與ret的差值

#include #include #include using namespace std;

const int maxn = 1010;

char a[maxn], b[maxn];

int dp[maxn][maxn] = ;

int len;

int main()

int ans = len - dp[len][len];

printf("%d\n", ans);

return 0;

}

洛谷P3402 最長公共子串行

題目背景 djl為了避免成為乙隻鹹魚,來找johann學習怎麼求最長公共子串行。題目描述 經過長時間的摸索和練習,djl終於學會了怎麼求lcs。johann感覺djl孺子可教,就給他布置了乙個課後作業 給定兩個長度分別為n和m的序列,序列中的每個元素都是正整數。保證每個序列中的各個元素互不相同。求這...

洛谷 P1439 最長公共子串行

傳送門 給出1 n的兩個排列p1和p2,求它們的最長公共子串行。輸入格式 第一行是乙個數n,接下來兩行,每行為n個數,為自然數1 n的乙個排列。輸出格式 乙個數,即最長公共子串行的長度 輸入樣例 5 3 2 1 4 5 1 2 3 4 5 輸出樣例 3 資料規模 對於50 的資料,n 1000 對於...

洛谷P1439 最長公共子串行

傳送門 最長公共子串行可以考慮轉化為最大上公升子串行。很容易想到用結構體儲存元素i 1 i n 分別在兩個序列 現的位置,按其在第乙個序列 現的位置排序,對樣例便有 x i a 1 2 3 4 5 x i b 3 2 1 4 5 此時i在a 現順序一定從前往後排列,求最大公共子串行長度只需找到b中最...