LibreOJ 6277 數列分塊入門 1 分塊

2022-05-05 20:48:07 字數 733 閱讀 7374

題解:感謝hzwer學長和loj讓本蒟蒻能夠找到如此合適的入門題做.

這是一道非常標準的分塊模板題,本來用打標記的線段樹不知道要寫多少行,但是分塊只有這麼幾行,極其高妙.

**如下:

#include#include

#include

#include

#include

using

namespace

std;

int tag[50010],a[100010],lump[50010

];int

n,sz;

void add(int l,int r,int

c)

if(lump[l]!=lump[r])

}for(int i=lump[l]+1;i<=lump[r]-1;i++)

}int

main()

for(int i=1;i<=n;i++)

while(n--)

else}}

題解 LibreOJ6277 數列分塊入門 1

更好的閱讀體驗 portal1 libreoj 給出乙個長為 n 的數列,以及 n 個操作,操作涉及區間加法,單點查值。第一行輸入乙個數字 n 第二行輸入 n 個數字,第 i 個數字為 a i 以空格隔開。接下來輸入 n 行詢問,每行輸入四個數字 opt l r c 以空格隔開。若 texttt 表...

數列分塊入門 1 LibreOJ 6277

有趣的分塊理論講解 給出乙個長為 n n n 的數列,以及 n n n 個操作,操作涉及區間加法,單點查值。input 第一行輸入乙個數字 n n n。第二行輸入 n n n 個數字,第 i i i 個數字為 a i ai ai,以空格隔開。接下來輸入 n n n 行詢問,每行輸入四個數字 opt ...

LOJ 6277 數列分塊入門 1

給出乙個長為 n 的數列,以及 n 個操作,操作涉及區間加法,單點查值。第一行輸入乙個數字 n。第二行輸入 n 個數字,第 i 個數字為 a i 以空格隔開。接下來輸入 n 行詢問,每行輸入四個數字 mathrm,l,r,c,以空格隔開。若 mathrm 0 表示將位於 l,r 的之間的數字都加 c...