BZOJ2956 模積和 分塊

2022-05-20 19:13:07 字數 1114 閱讀 3835

求∑∑((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 mod 2) * (4 mod 3) + (3 mod 2) * (4 mod 4) + (3 mod 3) * (4 mod 1) + (3 mod 3) * (4 mod 2) + (3 mod 3) * (4 mod 4) = 1

資料規模和約定

對於100%的資料n,m<=10^9。

題解

推到這之後發現有個i²不好搞,但是我們有平方和定理

然後分塊就好了

#include #include #include #define mod 19940417ll

#define m6 3323403ll

//6的逆元

using namespace std;

typedef long long ll;

ll n,m,i,last,ans;

ll s1,s2,s3;

ll pm(ll x,ll y)

return z;

}ll sum(ll x)

int main()

for(i=1;i<=m;i=last+1)

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

ans=(s1*s2%mod-s3+mod)%mod;

printf("%lld",ans);

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...

BZOJ 2956 模積和 分塊 數學

一開始忘記了平方數列求和,鬱悶 sum n n n 1 2 n 1 6 其實打乙個表是看得出規律的,但是要進行運算我們還是得把他變成數學公式才可以啊 對於取模運算 n i n ni i化簡以後就是喜聞樂見地 分塊了 include include include define inv 3323403...