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)$。