求∑∑((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...