【发布时间】:2013-04-30 10:49:23
【问题描述】:
我试图理解算法,它可以在时间 O(nklog(n)) 中为我提供数组中长度为 K 的递增子序列的数量。我知道如何使用 O(k*n^2) 算法来解决同样的问题。我查了一下,发现这个解决方案使用 BIT (Fenwick Tree) 和 DP。我也找到了一些代码,但我一直无法理解。
以下是我访问过的一些有用的链接。
Here in SO
Topcoder forum
Random webpage
如果有人能帮助我理解这个算法,我将不胜感激。
【问题讨论】:
-
介意显示你发现的具有 O(nklog(n)) 复杂度的代码吗?
-
topcoder 链接现已修复。你可以在那里找到它。
-
不立即尝试使用 BIT 来考虑这一点会更容易。我在这里解释一下:stackoverflow.com/questions/15057591/…
-
我无法理解你的算法。能否请您在我的帖子中扩展您的解释,或者让我了解使用分段树,然后我将使用 BIT 提出解决方案。提前致谢
-
我已经添加了一些更多的解释。如果您仍然无法理解,请告诉我确切的不清楚的地方,我会尽力提供帮助。
标签: c++ algorithm lis fenwick-tree