先算出無限制的情況,再減去i==j的情況。
無限制的情況很好算,有限制的情況需要將式子拆開。
注意最後的地方要用平方和公式,模數+1是6的倍數,於是逆元就是(模數+1)/6
#include#includeview code#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));
}
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...