高階線段樹之乘法操作

2022-02-02 01:58:09 字數 332 閱讀 1774

毒瘤梅開二度

如果你還不了解什麼是線段樹 或者你只是簡單了解但是並不知道工作原理以及基本操作 請你不要**這篇部落格(如果執意**可能會引起您的部分不適)

在看這篇部落格之前可以先看一下 線段樹(毒瘤)總結

我們在前面已經介紹過線段樹基本操作(單點修改 單點查詢 區間修改 區間求值)

但是都是簡單的加減運算 如果我們需要乘法運算呢?

//在做乘法線段樹的時候一定要注意取模  一般情況下都會炸int

(如果感覺時間會被卡可以將*2的操作改為<<1 , +1改為|1)

void pushdown(ll p)

線段樹 區間乘法

如題,已知乙個數列,你需要進行下面三種操作 將某區間每乙個數乘上 x 將某區間每乙個數加上 x 求出某區間每乙個數的和 第一行包含三個整數 n,m,p 分別表示該數列數字的個數 操作的總個數和模數。第二行包含 n 個用空格分隔的整數,其中第 i 個數字表示數列第 i 項的初始值。接下來 m 行每行包...

線段樹 高階

上一次我們寫的線段樹已經可以解決區間查詢 單點修改了!可喜可賀 那如果現在我們需要區間修改 區間查詢呢?一般有兩種思路 lazytag和標記永久化,lazytag的使用面好像更廣一些。一 lazytag 比如我們現在要修改乙個區間,我們可以像查詢一樣分成若干段,然後分別修改每一段。那麼問題來了,每一...

線段樹加法和乘法

已知乙個數列,你需要進行下面三種操作 將某區間每乙個數乘上 xx 將某區間每乙個數加上 xx 求出某區間每乙個數的和 第一行包含三個整數 n,m,pn,m,p,分別表示該數列數字的個數 操作的總個數和模數。第二行包含 nn 個用空格分隔的整數,其中第 ii 個數字表示數列第 ii 項的初始值。接下來...