bzoj2956 模積和(數論)

2022-05-12 16:02:41 字數 744 閱讀 2314

先算出無限制的情況,再減去i==j的情況。

無限制的情況很好算,有限制的情況需要將式子拆開。

注意最後的地方要用平方和公式,模數+1是6的倍數,於是逆元就是(模數+1)/6

#include#include

#include

#include

#define mod(x) ((x)>=mod?(x)-mod:(x))

using

namespace

std;

const

int mod=19940417,six=3323403

;int

n,m,sumn,summ,l1,r1,l2,r2,l,r;

void read(int &k)

int solve(int n,int

m)

return

sum;

}int pfh(int n)

intmain()

sum=(sum+mod-(1ll*m*solve(min(n,m),n)%mod)+mod-(1ll*n*solve(min(n,m),m)%mod))%mod;

printf(

"%lld\n

",mod(1ll*sumn*summ%mod+mod-sum));

}

view code

bzoj 2956 模積和 數論

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

bzoj2956 模積和 數論

題目描述 求 n mod i m mod j 其中1 i n,1 j m,i j。輸入第一行兩個數n,m。輸出乙個整數表示答案mod 19940417的值 樣例輸入 3 4樣例輸出1題解 數論 分塊 由於直接求i j的情況比較難搞,所以我們可以先求出i可以等於j的和,然後再減去i等於j時的情況。也就...

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