LCS与背包问题

1.问题

LCS:

在这里插入图片描述

背包问题:
在这里插入图片描述

2.解析

LCS:

在这里插入图片描述

背包问题:
在这里插入图片描述
在这里插入图片描述

3.设计

LCS:
X=<D, C, B, A>
Y=<B, A, C>
m=0-4
n=0-3

在这里插入图片描述

算法一:
(1)i=1
a)j=1 X.D<>Y.B :C[1,1]=max(C[1,0],C[0,1])=max(0,0)=0 删除y
b)j=2 X.D<>Y.A :C[1,2]=max(C[1,1],C[0,2])=max(0,0)=0 删除y
c)j=3 X.D<>Y.C :C[1,3]=max(C[1,2],C[0,3])=max(0,0)=0 删除y

(2)i=2
a)j=1 X.C<>Y.B :C[2,1]=max(C[2,0],C[1,1])=max(0,0)=0 删除y
b)j=2 X.C<>Y.A :C[2,2]=max(C[2,1],C[1,2])=max(0,0)=0 删除y
c)j=3 X.C==Y.C :C[2,3]=C[1,2]+1=1 删除两个

(3)i=3
a) j=1 X.B==Y.B :C[3,1]=C[2,0]+1=1 删除两个
b) j=2 X.B<>Y.A :C[3,2]=max(C[3,1],C[2,2])=max(1,0)=1 删除y
c) j=3 X.B<>Y.C :C[3,3]=max(C[3,2],C[2,3])=max(1,1)=1 删除y

(4)i=4
a) j=1 X.A<>Y.B :C[4,1]=max(C[4,0],C[3,1])=max(0,1)=1 删除x
b) j=2 X.A==Y.A :C[4,2]=C[3,1]+1=2 删除两个
c) j=3 X.A<>Y.C :C[4,3]=max(C[4,2],C[3,3])=max(2,1)=1 删除y

算法二:
1 删除y
X=<D, C, B, A>
Y=<B, A>
2 删除两个
X=<D, C, B>
Y=<,B>
1 删除两个
X=<D, C>
Y=<>
j=0
算法结束,结果为<B,A>

背包问题:
v1=2, v2=4, v3=5, v4=9
w1=3, w2=4, w3=5, w4=6
b=10

在这里插入图片描述

在这里插入图片描述

i4(10)=4,则4至少占一个;i4(10-6)=i4(4)=2,则2占一个,4-4=0,最后没有了
所以4号物品占一个,2号物品占一个

4.分析

时间复杂度:LCS:O(mn),背包问题:O(mn)

5.源码

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值