【动态规划14】UVA10635 Prince and princess(LCS转LIS)
2017-06-12 10:24
309 查看
偶然看到的一道题,感觉做法很有意思。
这道题的数据范围很大,对于普通的O(n^2)的算法来讲,时间复杂度是很大的。
然而这道题有着特殊的条件,那就是没有任意两个数字是相同的。
那么我们可以考虑如果将b中数字在a中出现的位置替换为b的值,那么显然b的LIS就是a和b的LCS。
只看这句话可能不太好理解(我表达太差)
举个栗子。
样例中
a[7]={1,7,5,4,8,3,9}
b[8]={1,4,3,5,6,2,8,9}
将b的值替换
b[8]={1,4,6,3,0,0,5,7}(0表示没出现过)
这时候从b中选出的所有不为0数字都能保证是a,b的公共数字
而选择单调递增的数字则能保证子序列的性质。
之后就很简单了。
题目大意
求两个数列a[p],b[q]的LCS,其中数的值域为1~n*n且没有任何两个数字是相同的,且两个数列的首位皆为1。这道题的数据范围很大,对于普通的O(n^2)的算法来讲,时间复杂度是很大的。
然而这道题有着特殊的条件,那就是没有任意两个数字是相同的。
那么我们可以考虑如果将b中数字在a中出现的位置替换为b的值,那么显然b的LIS就是a和b的LCS。
只看这句话可能不太好理解(我表达太差)
举个栗子。
样例中
a[7]={1,7,5,4,8,3,9}
b[8]={1,4,3,5,6,2,8,9}
将b的值替换
b[8]={1,4,6,3,0,0,5,7}(0表示没出现过)
这时候从b中选出的所有不为0数字都能保证是a,b的公共数字
而选择单调递增的数字则能保证子序列的性质。
之后就很简单了。
相关文章推荐
- UVa10635 - Prince and Princess(LCS转LIS)
- uva10635 Prince and Princess LCS 变 lIS
- 一中OJ #1434 序列的LCS [UVa 10635 -> Prince and Princess] | 动态规划 LCS映射转换LIS | 解题报告
- UVa10635--Prince and Princess(LCS转LIS)
- UVA 10635 Prince and Princess (LCS优化转LIS)
- Prince and Princess UVA - 10635(LCS转LIS)
- UVa 10635 - Prince and Princess(LCS转LIS)
- UVA 10635 - Prince and Princess (LCS转成LIS DP)
- UVA10635 Prince and Princess 动态规划
- dp(LCS转化成LIS)uva 10635 - Prince and Princess
- UVa 10635 Prince and Princess / LCS 转 LIS
- UVa10635 Prince and Princess(LCS)
- uva 10635-Prince and Princess 【LIS 求解 LCS】
- 【UVA 10635】【LCS转化成LIS】 Prince and Princess
- UVA10635 Prince and Princess 动态规划
- uva 10635 Prince and Princess(LCS问题转化成LIS问题O(nlogn))
- (UVA - 10635)Prince and Princess (LCS变形为LIS,DP)
- 例题27 UVa10635 Prince and Princess(DP:LIS的nlogn算法)
- uva 10635 - Prince and Princess lcs->lis 2018-2-8
- UVA 10635 Prince and Princess LCS转化为LIS *