最長公共子序列LCS 輸出所有LCS
原部落格地址:最長公共子序列LCS 求法 O(mn) 即輸出所有LCS
最長公共子序列LCS 求法 O(mn) 即輸出所有LCS
- #include <bits/stdc++.h>
- using namespace std;
- const int N = 1005;
-
- int dp[N][N], flag[N][N];
- int a[N], b[N];
- int n;
- set<string> st;
- void printLCS(int i,int j,string str)
- {
- while(i > 0 && j > 0)
- {
- if(a[i] == b[j])
- {
- str += a[i] + ‘0’;
- i –;
- j –;
- }
- else
- {
- if(dp[i-1][j] > dp[i][j-1])
- i –;
- else if(dp[i-1][j] < dp[i][j-1])
- j –;
- else
- {
- printLCS(i-1,j,str);
- printLCS(i,j-1,str);
- return ;
- }
- }
- }
-
- reverse(str.begin(),str.end());
- st.insert(str);
-
- }
- int main()
- {
- ios::sync_with_stdio(false);
-
- cin >> n;
- for(int i = 1;i <= n;i ++)
- cin >>a[i];
- for(int i = 1;i <= n;i ++)
- cin >> b[i];
-
- for(int i = 1;i <= n;i ++)
- {
- for(int j = 1;j <= n;j ++)
- {
- if(a[i] == b[j])
- dp[i][j] = dp[i-1][j-1] + 1;
- else
- dp[i][j] = max(dp[i-1][j],dp[i][j-1]);
- }
- }
-
- /*輸出LCS長度*/
- cout << dp[n][n] << endl;
-
- /*輸出所有LCS*/
- string s = “”;
-
- printLCS(n,n,s);
-
- for(auto tmp: st)
- cout << tmp << endl;
- return 0;
- }
</div>
相關文章
- lCS(最長公共子串)
- 動態規劃(最長公共子序列LCS)動態規劃
- 51Nod 1006 最長公共子序列Lcs
- 牛客網 Coincidence(最長公共子串LCS板題)IDE
- CF #683 (Div. 2)D. Catching Cheaters【最長公共子序列LCS變形】
- 最長公共子序列
- 最長公共子序列(JAVA)Java
- 線性dp:最長公共子序列
- 最長公共子序列求方案數
- java 實現 最長公共子序列Java
- 最長公共子序列 Longest Common Subsequence
- LeetCode 1143.最長公共子序列LeetCode
- 力扣1143. 最長公共子序列 動態規劃之最長公共子序列力扣動態規劃
- LCS 問題
- 動態規劃-最長公共子序列動態規劃
- 動態規劃——最長公共子序列動態規劃
- HDU 1503 Advanced Fruits (公共子序列+輸出)UI
- 【LeetCode動態規劃#14】子序列系列題(最長遞增子序列、最長連續遞增序列、最長重複子陣列、最長公共子序列)LeetCode動態規劃陣列
- 最長公共子序列你學會了嗎
- 最長迴文子序列(不連續) 可輸出迴文序列
- [題解]P1439 【模板】最長公共子序列
- 最長公共子序列問題—動態規劃sdut動態規劃
- 字串篇(python)—兩個字串的最長公共子序列字串Python
- 51nod-基因匹配+luogu-【模板】最長公共子序列
- 動態規劃經典問題----最長公共子序列動態規劃
- 最長上升子序列
- 經典演算法題每日演練——最長公共子序列演算法
- 詳解動態規劃最長公共子序列--JavaScript實現動態規劃JavaScript
- [譯] Swift 演算法學院 - 最長公共子序列演算法Swift演算法
- 線性dp:最長公共子串
- 領釦LintCode演算法問題答案-77. 最長公共子序列演算法
- [Java] 藍橋杯ADV-202 演算法提高 最長公共子序列Java演算法
- 動態規劃之最長公共子序列求解動態規劃
- 以最長公共子序列問題理解動態規劃演算法(DP)動態規劃演算法
- 線性dp:最長上升子序列
- 594. 最長和諧子序列
- 死嗑 最長上升子序列(LIS)
- 淺談最長公共子序列引發的經典動態規劃問題動態規劃