線段樹求LIS並統計最長子序列個數

如下面的題目爲例(題目和代碼在最後面),給定一個數列(長度最大爲10000),求出最長的先增後減子序列長度及個數。作法是先求出以每個位置結尾的最長單增子序列長度以及以該位置開頭的最長單減子序列長度,而後遍歷全部位置找出最大先增後減子序列長度。node 以最長單增序列(LIS)爲例,因爲不只須要整個序列LIS的長度,還要保存以每一個位置爲結尾位置的LIS長度。記以a[i]結尾的LIS長度爲dp[i]
相關文章
相關標籤/搜索