LCS、LIS、LCIS 与动态规划

5 篇文章 0 订阅
4 篇文章 0 订阅

话说LCS有O(n*m)的算法,LIS也有O(n*m)的算法;

XX日,LIS被栈和二分优化了,复杂度变为了nlogn,

于是n排列的LCS也被优化了,也达到了nlogn.

nlogn的LCS:设有序列A,B。记序列A中各个元素在B 中的位置,用序列C存,求C的LIS即可。

LCS与LIS结合,于是有了LCIS,LCIS有n*m的算法。

代码如下:

for i:=1 to n do

  begin

    t:=0;

    for j:=1 to n do

    begin

      if a[i]>b[j] then if f[j]>t thent:=f[j];

      if a[i]=b[j] then if t+1>f[j] thenf[j]:=t+1;

      if f[j]>ans then ans:=f[j];

    end;

  end;

有点抽象,但还是可以理解的。认真想想就明白了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FarmerJohn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值