UVa 10635(lcs转lis优化模板)王子和公主

578 篇文章 ¥299.90 ¥399.90
570 篇文章 ¥299.90 ¥399.90
本文介绍了如何使用LCS到LIS的转换优化模板来解决UVa 10635问题,通过这种方法可以在O(nlogn)的时间复杂度内完成求解。代码实现详述了算法思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

例题27 王子和公主(Prince and Princess, UVa 10635)
有两个长度分别为p+1和q+1的序列, 每个序列中的各个元素互不
相同, 且都是1~n2之间的整数。 两个序列的第一个元素均为1。 求出A和
B的最长公共子序列长度。
【输入格式】
输入的第一行为数据组数T(T≤10) 。 每组数据包含3行, 第一行为3
116个整数n, p, q(2≤n≤250, 1≤p, q≤n2) ; 第二行包含序列A, 其中第一
个数为1, 其元素两两不同, 且都是1~n2之间的整数; 第三行包含序列
B, 格式同序列A。
【输出格式】
对于每组数据, 输出A和B的最长公共子序列的长度。
【分析】
本题是LCS问题, 但因为p和q可以高达2502=62500, O(pq) 的算法
显然太慢。 注意到A序列中所有元素均不相同, 因此可以把A中元素重新
编号为1~p+1。 例如, 样例中A={1, 7, 5, 4,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值