最长公共子序列
来源:互联网 发布:python 实现http接口 编辑:程序博客网 时间:2024/06/05 20:16
给定两个序列:A1~An , B1~Bn ,求它们最长公共子序列
如: A:1 2 3 2 4 1 2
B:2 4 3 1 2 1
最长长度:4
路径:2 3 2 1
附AC码:
#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<iostream>#include<algorithm>using namespace std;int a[101];int b[101];int pro[101][101];int f[101][101];void out(int i,int j){ if(i*j==0) return; if(pro[i][j]==1){ out(i-1,j-1); printf("%d ",a[i]);}else if(pro[i][j]==2) out(i-1,j);else out(i,j-1);}int main(){ int i,j,k,m,n; scanf("%d%d",&n,&m); for(i=1;i<=n;i++) scanf("%d",&a[i]); for(i=1;i<=m;i++) scanf("%d",&b[i]); for(i=1;i<=n;i++) for(j=1;j<=m;j++) if(a[i]==b[j]){ f[i][j]=f[i-1][j-1]+1; pro[i][j]=1;}else if(f[i-1][j]>f[i][j-1]){ f[i][j]=f[i-1][j]; pro[i][j]=2;}else{ f[i][j]=f[i][j-1]; pro[i][j]=3;}printf("%d\n",f[n][m]);out(n,m);return 0;}
0 0
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列...
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 网络攻防之——WEB漏洞扫描
- OCILIB ThreadPool使用总结
- opj线性表Placing apples 题解
- 题解:Regular Expression Matching
- 如何平衡工作与生活?真相在此
- 最长公共子序列
- 链表倒数第n个节点
- CCF 分蛋糕 Java实现
- 回归原理解析
- 向类中添加方法
- 反转问题POJ_3276
- 实验室智能管理系统(2)——Arm+QT部分(一)
- 关于background和height:100%的一些总结
- 计蒜客 蒜头君学英语