在遙遠的王國邊境,有一排古老的石板路,每塊石板都有一個魔力數值。某天,暴雨襲來,守護者需要在石板上施放魔法,降低(把數值截斷到某上限)、增益(整段增加固定數值),或查詢石板魔力總和以確保橋樑穩固。你要幫助守護者快速處理大量的魔法指令。
要求:給定初始數列,支援三種操作:
0 l r x:對區間 [l, r] 執行 a_i = min(a_i, x)(range chmin)。
1 l r x:對區間 [l, r] 執行 a_i += x(range add)。
2 l r:查詢區間 [l, r] 的元素總和(range sum)。
索引從 1 開始,所有操作都是左右端點包含(inclusive)。
第一行:兩個整數 n q,分別為石板數與操作數。
第二行:n 個整數,為初始陣列 a_1 ... a_n。
接下來 q 行,每行為一個操作:
若操作種類為 0 或 1:三個整數 t l r x(t = 0 或 1)。
若操作種類為 2:三個整數 t l r(t = 2,無 x)。
注意輸入皆用空白分隔。
1 ≤ n, q ≤ 2*10^5
|a_i| ≤ 10^{18}
對於操作:1 ≤ l ≤ r ≤ n
|x| ≤ 10^{18}
輸出與中間計算請以 64-bit signed(例如 C++ 的 long long)處理。
對每個 t = 2 的查詢輸出一行,表示對應區間的總和(以 64-bit 有號整數表示)。
5 5 5 3 7 1 9 2 1 5 0 2 4 4 2 1 5 1 3 5 2 2 3 3
25 22 6
| 編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
|
沒有發現任何「解題報告」
|
|||||