UVA 10405 - Longest Common Subsequence

23 篇文章 0 订阅
17 篇文章 0 订阅

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=114&page=show_problem&problem=1346

 

题目大意:

 

                   就是输入两个字符序列,输出两个序列的最长公共子序列(注意序列跟串的区别)。

 

题目类型:

 

               经典dp /LCS

 

分析:

 

             就是 最长公共子序列(LCS)的问题。d[i][j]表示a[i]之前、b[j]之前(含端点)的序列的最大子序列长度,

 

   则状态转移方程:di,j = { di-1,j-1+1, 当a[i]=b[j]; max{di,j-1, di-1,j}, 当a[i]≠b[j]; }。

 

   原问题的解就是 d(len(a)-1, len(b)-1) 了;

 

              注:此题又很恶心,题目描述中没有说输入中有没有空格,结果用scanf WA了,换成gets 当场A了。注意咯。

 

              总结:注意用scanf 读串的时候要小心, 注意与gets的区别!

 

 

代码:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值