最长公共子序列
Posted lipeiyi520
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最长公共子序列相关的知识,希望对你有一定的参考价值。
题目:
给出a,b两个序列,求两个序列最大公共子序列。
代码实现:
1 #include<iostream> 2 using namespace std; 3 4 int n,a[100001],b[100001],f[1001][1001]; 5 6 int main() { 7 cin >> n; 8 for(int i = 1;i <= n; i++) 9 cin >> a[i] >> b[i]; 10 for(int i = 1;i <= n; i++) 11 for(int x = 1;x <= n; x++) 12 if(a[i-1] == b[i-1]) 13 f[i][x] = max(f[i-1][x-1] + 1, f[i][x]); 14 else 15 f[i][x] = max(f[i-1][x], f[i][x-1]); 16 cout << f[n][n] <<endl; 17 18 19 20 21 return 0; 22 }
以上是关于最长公共子序列的主要内容,如果未能解决你的问题,请参考以下文章