模擬93 題解


A. 序列

一眼二分,然后發現二分有點不對?

一測大樣例果然不對,因為有兩個限制,問題並不具有單調性。

作前綴和后問題其實是個三維偏序問題,似乎還得一個$log$復雜度。

先打個$cdq$分治套樹狀數組,結果極限數據$0.3s$,所以就$AC$了。

正解確實是一個$log$。

最后一維偏序(下標)的意義並不大,只要維護最小值。

所以可以給三元組按$x$排序,依次插入樹狀數組,

維護每個$y$值最小的下標,這樣的復雜度顯然是$O(nlogn)$

 

 

 

B. 二叉搜索樹

顯然的區間$dp$?

設$dp(l,r)$表示划分區間$[l,r]$的答案。

那么$dp(l,r)=\min_{i=l}^{r}{dp(l,i-1)+dp(i+1,r)}+\sum \limits_{i=l}^{r}x_i$

暴力做是$O(n^3)$的,然而對於同一長度的$dp$轉移點顯然具有單調性。

所以可以用決策單調性優化,復雜度$O(n^2logn)$。

更進一步,對於左側減少一個單位長度或右側減少一個單位長度,轉移點同樣具有單調性,所以復雜度$O(n^2)$。

 

 

 

C. 走路

暴力做法直接高斯消元,復雜度$O(n^4)$。

問題在於很多相同的方程被消了多次,有很多無意義的操作。

考慮分治高斯消元。

$solve(l,r)$表示$[l,r]$內的方程還沒有消的情況的上三角。

當$l=r$,可以暴力回代求出$ans_l$。

對於其他情況,分別用$[l,mid]$進行消元,遞歸$(mid+1,r)$。

用$[mid+1,r]$進行消元,遞歸$(l,mid)$。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM