RMQSUM~(RMQSUM)~


Submit solution

分數: 100 (partial)
時間限制: 1.0s
記憶體限制: 1G

作者:
題目類型
允許的語言
Assembly, Brainfuck, C, C++, Python

先備知識: RMQ Problem(Range Minimum/Maximum Query),區間最小/大值問題是一個很常見的問題。 簡單來說就是給定一個陣列A和Q個詢問,每次詢問A中某個區間的最大值/最小值。 這個問題使用線段樹可以達到預處理/詢問複雜度\(O(N)/O(logN)\),而使用稀疏表可以達到\(O(NlogN)/O(1)\)。   給定一個陣列A,定義\(RMQ(l,r)\)表示\(A[l,r]\)中的最小值,請輸出 [ \sum_{i=1}^{N}\sum_{j=i}^{N} RMQ(i,j) ]

輸入格式

第一行為A的長度\(N(N \leq 200000)\) 第二行是A裡面的數字(絕對值 \(\leq 10^5\))。

輸出格式

[ \sum_{i=1}^{N}\sum_{j=i}^{N} RMQ(i,j) ]

範例輸入

5
1 2 3 4 5

範例輸出

35

提示

子題一(40%):\(N \leq 2000\) 子題二(60%):無其他限制。


評論

目前沒有評論。