分塊九題 1

2022-05-12 11:42:15 字數 1015 閱讀 9687

題目

本蒟蒻要開始學分塊了,區間查詢神器,區間修改單點查詢。
#includeusing

namespace

std;

const

int maxn = 50005

;const

int n = 305

;inline

intrd()

while(ch>='

0' && ch<='

9')

return x*f;

}int

n,a[maxn];

int bl[maxn]; //

標記屬於哪個塊

int l[n],r[n]; //

標記塊的邊界

int num; //

塊的個數

intin[n]; //

加法標記

int siz; //

塊的大小

inline

void

build()

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

bl[i]=(i-1)/siz+1

; r[num]=n;

}inline

void update(int ql,int qr,int

w)

for(register int i=ql;i<=r[bl[ql]];i++)

a[i]+=w;

for(register int i=bl[ql]+1;i<=bl[qr]-1;i++)

in[i]+=w;

for(register int i=l[bl[qr]];i<=qr;i++)

a[i]+=w;

}inline

int query(int

qr)int

main()

return0;

}

分塊 分塊練習三題

分塊嘛 馮巨道德午餐講過的 唯一不同的是可能需要st n ed n 來記錄一下範圍 例教主的魔法 板 include using namespace std define in read int in const int n 1e6 5 int n,q,a n b n add n int siz,m...

分塊入門題

分塊入門題5 給 l,r 取開方,乙個數字最多被取開方6次,那麼乙個塊內有需要開方的時候才對這個塊取開方,那麼最多6 n sqrt n 次,分塊直接寫 includeusing namespace std typedef long long ll const int maxn 1e5 7 int l...

分塊模板題

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