清華集訓2012 模積和

2022-08-03 02:09:15 字數 1147 閱讀 2318

給定n,m,求 $\sum\limits_^ \! \sum\limits_^m[i\neq j](n\  mod \  i)(m \  mod \  j)\mod 19940417$的值

我們先求出$\sum\limits_^\sum\limits_^(n\ mod\ i)(m\ mod\ j)$的值,然後運用容斥原理排除i=j的情況即可。

$$ans=\sum\limits_^\sum\limits_^(n\ mod\ i)(m\ mod\ j)-\sum\limits_^(n\ mod\ i)(m\ mod\ i)$$

$$=\sum\limits_^\sum\limits_^(n-\lfloor\frac\rfloor i)(m-\lfloor\frac\rfloor j)-\sum\limits_^(n-\lfloor\frac\rfloor i)(m-\lfloor\frac\rfloor i)$$

$$=\sum\limits_^(n-\lfloor\frac\rfloor i)\sum\limits_^(m-\lfloor\frac\rfloor j)-\sum\limits_^(nm+\lfloor\frac\rfloor\lfloor\frac\rfloor i^2-(m\lfloor\frac\rfloor+n\lfloor\frac\rfloor)i)$$

另外,本題中我們需要乙個引理:$\sum\limits_^=\frac$

這樣,我們預處理6的乘法逆元,然後根據上述推導用整除分塊計算即可

1 #include 2

using

namespace

std;

3 typedef unsigned long

long

ll;4

ll n, m;

5const ll mod = 19940417;6

inline ll sum1(ll x, ll y)

9inline ll sum2(ll x)

12ll calc(ll x)

18return

ret;19}

20int

main()

31 printf("

%lld\n

", ans %mod);

32return0;

33 }

ac code

P2260 清華集訓2012 模積和

數學題,無背景。求 sum limits sum limits n bmod i times m bmod j i neq j bmod 19940417 的值 輸入格式 兩個整數n m 輸出格式 答案 mod 19940417 輸入樣例 1 3 4 輸出樣例 1 1 輸入樣例 2 123456 6...

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