题意:

给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的)。

比如两个串为:
abcicba
abdkscab
ab是两个串的子序列,abc也是,abca也是,其中abca是这两个字符串最长的子序列。

输出最长的子序列,如果有多个,随意输出1个。
 
思路:
DP,同时DP记录路径。
 
代码:
string a,b;
int f[1005][1005];
int path[1005][1005]; void _print(int x,int y){
if(!x||!y) ret; int t=path[x][y];
if(!t)
_print(x-1,y-1);
else if(t<0)
_print(x-1,y);
else
_print(x,y-1);
if(!t) print("%c",a[x-1]);
} int main(){ cin>>a>>b;
int la=a.length(), lb=b.length();
mem(f,0);
mem(path,0); rep(i,1,la) rep(j,1,lb){
f[i][j]=max( f[i-1][j],f[i][j-1] );
if(f[i-1][j]>f[i][j-1]){
f[i][j]=f[i-1][j];
path[i][j]=-1;
}
else{
f[i][j]=f[i][j-1];
path[i][j]=1;
}
if(a[i-1]==b[j-1]){
if(f[i-1][j-1]+1>f[i][j]){
f[i][j]=f[i-1][j-1]+1;
path[i][j]=0;
}
}
}
_print(la,lb); cout<<endl; return 0;
}
 
 
 
 
 
 
 
 
 
 
 

最新文章

  1. web前端学习部落22群 明白何谓Margin Collapse
  2. HSV
  3. 【BZOJ】【3280】小R的烦恼
  4. 关于html水平垂直居中的一些总结吧
  5. 以太坊挖矿源码:clique算法
  6. 简历HTML网页版
  7. thinkphp 迁移数据库 -Phinx 简单说明文档
  8. MongoDB exception:connection failed
  9. 安装redis报错 you need tcl 8.5 or newer in order to run redis test
  10. Java并发编程-ReentrantReadWriteLock
  11. Testing - 软件测试知识梳理 - 自动化测试
  12. java 华容道 迷弟版(向 xd-女神 吴嘉欣致敬)
  13. 开源|如何使用CNN将视频从2D到3D进行自动转换(附源代码)
  14. Rspec: feature spec 功能测试 测试JavaScript.
  15. 模拟QQ分组
  16. linux一键安装php环境
  17. Why we should overwrite the hashCode() when we overwrite the equals()
  18. CentOS 7中为Yum设置代理
  19. mariadb/mysql使用Navicat连接报错
  20. hdu 4559 涂色游戏(SG)

热门文章

  1. 机器学习——softmax回归
  2. Java面向对象系列(11)- instanceof和类型转换
  3. jmeter长时间压测
  4. 重新嫁接rm命令
  5. 1.4redis小结--队列在抢购活动的实现思路
  6. three.js 在模型上移动相机
  7. 阿里限流神器Sentinel夺命连环 17 问?
  8. MacOS上通过虚拟机搭建基础CentOS7系统环境
  9. ECMA 2022 (es13) 新特性
  10. Java实现红黑树(平衡二叉树)