BZOJ 2956 模積和 分塊 數學

2021-07-27 17:38:21 字數 612 閱讀 5576

一開始忘記了平方數列求和,鬱悶:

sum[n]=n*(n+1)*(2*n+1)/6

其實打乙個表是看得出規律的,但是要進行運算我們還是得把他變成數學公式才可以啊:

對於取模運算:n%

i=n−

⌊ni⌋

∗i化簡以後就是喜聞樂見地 分塊了

#include

#include

#include

#define inv 3323403ll

#define mod 19940417ll

#define maxn 100021

#define ll long long

using namespace std;

ll n,m,s1,sm,s2,sn;

ll q(ll a,ll b)

ll calc(ll x)

int main()

for(ll num,i=1,j;i<=n;i=j+1)

for(ll num,i=1,j;i<=n;i=j+1)

printf("%lld",(s1-s2+mod)%mod);

return

0;}

bzoj2956 模積和 (分塊)

原題位址 題意 求 n mod i m mod j 其中1 i n,1 j m,i j。答案 mod 19940417 資料範圍 n,m 10 9 題解 n i 1 mj 1 nm odi mm odj i j ni 1 mj 1 nmod i mmod j min n,m i 1 nm odi m...

BZOJ 2956 模積和 (分塊)

bzoj 1257的加強版,多了乙個?那就把它展開來啦。i 1n j 1m nmo di mmo dj i j i 1n j 1 m nm odi mm odj i 1n n ni i m mi i i 1n j 1m nmod i mmod j i 1n nm n m i i m ni i n i...

BZOJ2956 模積和 分塊

求 n mod i m mod j 其中1 i n,1 j m,i j。第一行兩個數n,m。乙個整數表示答案mod 19940417的值 3 41 樣例說明 答案為 3 mod 1 4 mod 2 3 mod 1 4 mod 3 3 mod 1 4 mod 4 3 mod 2 4 mod 1 3 m...