分塊動態求和

2022-06-09 03:15:09 字數 1478 閱讀 5145

不會的同學可以先參考這個部落格

題目;loj6280

題目描述

給出乙個長為 的數列,以及 個操作,操作涉及區間加法,區間求和。

輸入格式

第一行輸入乙個數字 。

第二行輸入 個數字,第 個數字為 ,以空格隔開。

接下來輸入 行詢問,每行輸入四個數字 、、、,以空格隔開。

若 ,表示將位於 的之間的數字都加 。

若 ,表示詢問位於 的所有數字的和 。

#pragma gcc optimize(1)

#pragma gcc optimize(2)

#pragma gcc optimize(3,"ofast","inline")#include

using

namespace

std;

typedef

long

long

ll;template

void read(tp &x)

if(ch=='-'

)else fh=1

;

while(ch>='

0'&&ch<='9'

) x*=fh;

}inline

char

read1()

const

int maxn=1e6+100

;ll a[maxn],l[maxn],r[maxn],belong[maxn],lazy[maxn],ans;

ll sum[maxn];

ll n,op,x,y,k,block,tot;

void

build()

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

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

r[tot]=n;

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

}void

change()

}else

for(register int i=l[belong[y]];i<=y;i++)

for(register int i=belong[x]+1;i)

} }void

ask()

printf(

"%lld\n

",ans%(k+1

)); }

else

for(register int i=l[belong[y]];i<=y;i++)

for(int i=belong[x]+1;i)

printf(

"%lld\n

",ans%(k+1

)); }

} int

main()

build();

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

else

} }

UPC11449 餘數求和(分塊)

時間限制 1 sec 記憶體限制 128 mb 提交 91 解決 48 提交 狀態 命題人 admin 題目描述 給出正整數n和k,計算j n,k k mod 1 k mod 2 k mod 3 k mod n的值。其中 k mod i表示k除以i的餘數。例如j 5,3 3 mod 1 3 mod ...

51nod 1225 餘數求和(分塊)

f n n 1 n 2 n 3 n n 其中 表示mod,也就是餘數。例如f 6 6 1 6 2 6 3 6 4 6 5 6 6 0 0 0 2 1 0 3。給出n,計算f n 由於結果很大,輸出mod 1000000007的結果即可。input 輸入1個數n 2 n 10 12 output 輸出...

bzoj 3809 莫隊 分塊求和

time limit 80 sec memory limit 28 mb submit 1185 solved 330 submit status discuss autumn和bakser又在研究gty的妹子序列了!但他們遇到了乙個難題。對於一段妹子們,他們想讓你幫忙求出這之內美麗度 a,b 的妹...