一開始忘記了平方數列求和,鬱悶:
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...