摘要: LIS:Longest Increasing Subsequence 最长上升子序列昨天用O(n^2)的方法做了HDU的导弹题,同样的,求LIS还有O(nlogn)的优化方法。在这里,我们用sub保存一个最长上升子序列,top表示其长度。我们要做的就是让top尽可能的大。算法:每次输入一个数x,判断它和sub顶部的元素大小关系。if x = sub[top] then sub[++top] <- xelse sub[第一个比x大的元素位置] <- x于是,这变得有些不像DP了。而查找第一处比x大的元素位置,又可以使用二分法优化,于是整体的复杂度就为O(nlogn)了。援引百度知道l 阅读全文
posted @ 2012-03-08 19:44 dgsrz 阅读(393) 评论(0) 推荐(0) 编辑