4991专题

【HDU】4991 Ordered Subsequence 线段树树状数组

传送门:【HDU】4991 Ordered Subsequence 题目分析:本题就是求长度为m的严格上升序列的个数。 就是个DP! 设dp[ i ][ j ]为以位置i的数为结尾的长度为j的严格上升序列的个数。 则dp[ i ][ j ] = sum { dp[ k ][ j - 1 ] | 1 <= k <= i - 1 } 那么如果朴素O(n^2)不超时是不用想了,这样我们该

HDU 4991 Ordered Subsequence(dp+树状数组)

好题啊。  自己想的dp。 dp【i】【j】 代表第i个数时  递增长度为 j 的个数。  明显 d【i】【j】 = sum(d【k】【j-1】 && num【k】 < num【i】) 但是写暴力的话 需要三层循环  n^2*k 的复杂度。 肯定超时。 递推公式有个特点。 到达每一项之后 都是前面项数的和。  所以需要用树状数组优化。(正好是求前缀和)