poj4044(最長連續公共子串行)

2021-09-06 09:55:43 字數 466 閱讀 9941

大致題意:給出兩個班級的成績,先按降序排序,如果在乙個班級裡有某個成績出現了多次,則只保留乙個。然後求連續的最長公共子串行。輸出時,先輸出最長連續公共子串行,然後按個位數字遞增的順序輸出,若個位數字一樣就按成績遞增。

兩個迴圈變數一重迴圈

#include#include#includeusing namespace std;

int a[35],b[35];

int q[35],t=0,l[35],maxl=0;

bool book[105];

bool cmp1(int a,int b)

bool cmp2(int a,int b)

} if(maxl==0) printf("none\n");

else

} return 0;

}

最長公共連續子串和最長連續公共子串行

用二維陣列c i j 記錄串x1 x2 x i x1x2 xi與y 1y 2 y j y1y2 yj 的lcs長度,則可得到狀態轉移方程c i,j 0c i 1 j 1 1max c i,j 1 c i 1,j i 0 orj 0i,j 0a ndxi y j i,j 0a ndxi y j pub...

求最長連續公共子串

說到求最長公共子串首先想到的是逐個子串比較,但是那樣的話演算法的複雜度太高,後來就想到用矩陣的方法去解決 思路如下 比如字元創a abcdefg 和字串b bdeabc 建立矩陣如下圖所示 發現如果連續的斜線值為1的長度最長的話 則為最長公共子串 則abc為最長公共子串 那我們可把矩陣進化為 我們在...

最長公共連續子串

這是兩個字串,所以狀態轉移矩陣肯定是二維矩陣。另外dp i j 代表的意思不是分別乙個字串的前 i 個和另乙個字串的前 j 個字元裡面的最長連續子串。而是以a i 和b j 為末端的公共連續子串長度。如果dp i j 代表是目前最長連續子串,那麼遞推公式就寫不出來,因為不知道dp i j 中公共子串...