摘要:
原题链接:http://122.207.68.93/OnlineJudge/problem.php?id=1078 这道题与双序列的最长公共子序列毫不相干,其本质为单序列的最长上升子序列。 先离散化,然后用一个数组记录每个数字出现的位置(其实只需要记录第一行的序列),那么就可以转换成求最长上升子序列了,这里的上升是相对于某个数字的位置数组来说的(也就是n维的),比如(1,2,1) < (2,3,2),但(2,2,2)<(1,3,3)不成立。然后O(m2)求LIS就行了。 第一次用JAVA,还不是很熟练,不熟悉JAVA机制与优化,代码运行得比较慢。 1 import java.io. 阅读全文