首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
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 的复杂度。 肯定超时。 递推公式有个特点。 到达每一项之后 都是前面项数的和。 所以需要用树状数组优化。(正好是求前缀和)
阅读更多...