zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(s) =∏ tˆs gcd(t)(j1)...

94
untitled __debug 2018 3 24 __debug untitled 1/93 1 / 93

Upload: others

Post on 27-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

untitled

__debug

2018 年 3 月 24 日

__debug untitled 1/931/93

Page 2: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

最大公约数, 最小公倍数

lcm(S) =∏T⊂S

gcd(T )(−1)|T |+1

gcd(Fib(a),Fib(b)) = Fib(gcd(a, b))

gcd(xa − 1, xb − 1) = xgcd(a,b) − 1

__debug untitled 2/932/93

Page 3: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

BZOJ 4833

已知f(n) = 2f(n− 1) + f(n− 2)

f(0) = 0, f(1) = 1

g(n) = lcm(f(1), f(2), ..., f(n))

求n∑

i=1

g(i)× i (mod p)

n ≤ 106, p 为质数

__debug untitled 3/933/93

Page 4: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

gcd(f(i), f(j)) = f(gcd(i, j))

g(n) =∏

T⊂2[n]

f(gcdi∈T

(i))(−1)|T |+1

f(n) =∏d|n

h(d)

g(n) =∏

T⊂2[n]

∏d| gcdi∈T (i)

h(d)

(−1)|T |+1

=

n∏d=1

h(d)∑

T⊂2[⌊n/d⌋] (−1)|T |+1

=

n∏d=1

h(d)

__debug untitled 4/934/93

Page 5: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

HDU 5780

求 ∑1≤a,b≤n

gcd(xa − 1, xb − 1)

x, n ≤ 100000, 300 组数据

__debug untitled 5/935/93

Page 6: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

ans =∑

1≤a,b≤n

(xgcd(a,b) − 1)

=

n∑k=1

(xk − 1)∑

1≤a,b≤n

[gcd(a, b) = k]

=

n∑k=1

(xk − 1)

2

⌊n/k⌋∑i=1

φ(i)− 1

整除分块.

__debug untitled 6/936/93

Page 7: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

费马小定理, 欧拉定理, 扩展欧拉定理

若 p 是一个质数, 且 a 不是 p 的倍数

ap−1 ≡ 1 (mod p)

若 a, p 互质aφ(p) ≡ 1 (mod p)

一般情况

am ≡ amin{m,(m mod φ(n))+φ(n)} (mod p)

__debug untitled 7/937/93

Page 8: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

BZOJ 3884

2222

2222

...

(mod p)

p ≤ 107, 1000 组数据

__debug untitled 8/938/93

Page 9: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

ans(p) = 2ans(φ(p))+φ(p) (mod p)

递归次数 O(log p).

__debug untitled 9/939/93

Page 10: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

中国剩余定理

求一元模线性方程组 x ≡ ai (mod pi) 的一个通解, pi 两两互质.

P =∏

pi

Pi =P

pi

ti = P−1i mod pi

构造通解x ≡

∑aitiPi (mod P )

__debug untitled 10/9310/93

Page 11: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

BZOJ 1129

给一个序列 s (可能有重复元素), 求 s 的字典序排名, 对 m 取模.

n ≤ 3× 105, m 不一定为质数

__debug untitled 11/9311/93

Page 12: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

对每一位考虑贡献, 例如第 1 位的贡献就是

(n− 1)!∏i cnt(i)!

(∑i<s1

cnt(i)

)

可以用 BIT 维护后面的(∑

i<s1cnt(i)

).

由于 m 不是质数, 首先 CRT, 转化为模 pk, 其中 p 为质数.此时可以用一个数对 (x, y) 将每个数表示为 xpy, 其中 y 极大.

__debug untitled 12/9312/93

Page 13: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

筛法

• 埃拉托斯特尼筛法: 枚举倍数• 欧拉筛法: 枚举最小质因子及其次数

__debug untitled 13/9313/93

Page 14: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

uria

求有多少组正整数对 (a, b) 满足1. a+ b ≤ n

2. a+ b | ab

n ≤ 1014

__debug untitled 14/9314/93

Page 15: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

令 d = gcd(a, b), 不妨设 a = a′d, b = b′d, 则 a′ + b′ | d.又因为 (a′ + b′)d ≤ n, 所以 a′ + b′ ≤

√n.

不妨枚举 t = a′ + b′, 则其对答案的贡献为 ⌊ nt2⌋φ(t).

__debug untitled 15/9315/93

Page 16: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

积性函数

令 n = pe11 pe22 · · · pekk ,• ϵ(n) = [n = 1]

• 1(n) = 1

• Id(n) = n

• µ(n) = [max(e1, e2, . . . , ek) ≤ 1](−1)k

• φ(n) = n∏

d|n(1−1d)

• d(n) =∑

d|n 1

• σ(n) =∑

d|n d

• λ(n) = (−1)k

• ...

__debug untitled 16/9316/93

Page 17: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

狄利克雷卷积

(f ∗ g)(n) =∑d|n

f(d)g(n

d)

• µ ∗ 1 = ϵ (莫比乌斯反演)• Id = φ ∗ 1 =⇒ φ = µ ∗ Id• d = 1 ∗ 1 =⇒ 1 = µ ∗ d• σ = Id ∗ 1 =⇒ Id = µ ∗ σ• σ = φ ∗ d• d(ij) =

∑p|i∑

q|j [gcd(p, q) = 1]

• σ(ij) =∑

p|i∑

q|j [gcd(p, q) = 1] ipq

•∑n

i=1 µ2(i) =

∑i≥1 µ(i)⌊

ni2⌋

__debug untitled 17/9317/93

Page 18: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

来看几道积性函数基础题.

再来看难一些的题.

__debug untitled 18/9318/93

Page 19: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

来看几道积性函数基础题.

再来看难一些的题.

__debug untitled 18/9318/93

Page 20: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

div

求n∑

i=1

∑d|i

f(i

d)σ(d)

其中f(n) =

∑i2+j2=n

gcd(i,j)=1

i

n ≤ 1010

__debug untitled 19/9319/93

Page 21: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

杜教筛的思想: f ∗ g 的前缀和可以转化为两个前缀和, 于是如果f, g 的前缀和都容易求出, 那么最终的结果也容易求出:

n∑i=1

∑d|i

f(i

d)σ(d)

=

n∑k=1

f(k)∑k|i

σ(i

k)

=

n∑k=1

f(k)D(⌊nk⌋)

于是问题变为求 σ 的前缀和 D, 和 f 的前缀和 F . D 很好求:

D(n) =∑i≥1

i⌊ni⌋

整除分块即可.

__debug untitled 20/9320/93

Page 22: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

F 没那么好求. 设 G(n) =∑

1≤i2+j2≤n i, 则

G(n) =∑i≥1

i⌊√n− i2⌋

G(n) =∑i≥1

F (n

d2)d

F (n) = G(n)−∑i>1

F (n

d2)d

预处理前 n2/3 项, 时间复杂度 O(n2/3).

__debug untitled 21/9321/93

Page 23: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

ra

求有多少组正整数对 (a, b) 满足1. a, b ≤ n

2. lcm(a, b) > n

n ≤ 1010

__debug untitled 22/9322/93

Page 24: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

首先补集转化, 即求∑1≤t≤n

∑1≤i,j≤n

[gcd(i, j) = t][ij ≤ nt]

=∑

1≤t≤n

∑1≤i,j≤⌊n/t⌋

[gcd(i, j) = 1][ij ≤ ⌊n/t⌋]

__debug untitled 23/9323/93

Page 25: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

由于 t 可以整除分块, 不妨设

f(k) =∑

1≤i,j≤k

[gcd(i, j) = 1][ij ≤ k]

不妨设 i < j, 然后 1 到√k 枚举 i: (注意 i = j = 1 的情况)

f(k) = 2

√k∑

i=1

−φ(i) +

⌊k/i⌋∑j=1

[gcd(i, j) = 1]

+ 1

= 2

√k∑

i=1

−φ(i) +∑d|i

µ(d)

⌊k

id

⌋+ 1

考虑每个 d 的贡献就可以 O(√k log k) 计算 f(k) 了.

时间复杂度 O(n3/4 logn).

__debug untitled 24/9324/93

Page 26: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

性质 1:f(k)− f(k − 1) = 2c(k)

其中 c(k) 为 k 的质因子个数.

证明:考虑在 f(k) 中有的 (i, j) 而在 f(k − 1) 中没有的, 一定满足 ij = k且 gcd(i, j) = 1. 容易看出这样的 (i, j) 的对数就是 2c(k).

c(x) 是一个积性函数, 可以线性筛. 借鉴杜教筛的思想, 预处理前n2/3 项即可, 时间复杂度 O(n2/3 logn).

__debug untitled 25/9325/93

Page 27: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

性质 2:

f(k) =k∑

i=1

⌊k

i

⌋−

√k∑

t=2

f

(k

t2

)证明:• 将所有 ij ≤ k 的考虑进来:

∑ki=1⌊k/i⌋

• 再枚举 t = gcd(i, j), 减去贡献:∑√

kt=2 f(k/t

2)

借鉴杜教筛的思想, 递归计算即可, 时间复杂度 O(n2/3).

__debug untitled 26/9326/93

Page 28: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

定义

在 n 个元素中取出 k 个的方案数:(n

k

)=

(n− 1

k

)+

(n− 1

k − 1

)=

nk

k!

将 n 个元素分为 k 个环的方案数:[n

k

]= (n− 1)

[n− 1

k

]+

[n− 1

k − 1

]将 n 个元素分为 k 个集合的方案数:{

n

k

}= k

{n− 1

k

}+

{n− 1

k − 1

}

__debug untitled 27/9327/93

Page 29: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

(n

k

)=

n

k

(n− 1

k − 1

)(n

k

)=

n− k + 1

k

(n

k − 1

)(n

k

)=

k∑j=0

(n− k − 1 + j

j

)(n

k

)=

n−1∑j=0

(j

k − 1

)(n

k

)≡(⌊n/p⌋⌊k/p⌋

)(n mod p

k mod p

)(mod p)

__debug untitled 28/9328/93

Page 30: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

AGC018 E

已知平面上三块不相交的从左上到右下排列的三块矩形区域A,B,C, 求分别从这三个区域中挑一个点构成的路径的个数, 只能向右或向上走.

坐标范围 ≤ 106

__debug untitled 29/9329/93

Page 31: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

英文阅读.

__debug untitled 30/9330/93

Page 32: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

an =

n∑i=0

(n

i

)bi =⇒ bn =

n∑i=0

(−1)n−i

(n

i

)ai

ak =

n∑i=k

(i

k

)bi =⇒ bk =

n∑i=k

(−1)i−k

(i

k

)ai

__debug untitled 31/9331/93

Page 33: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

xn =

n∑k=0

{n

k

}xk =

n∑k=0

(−1)n−k

{n

k

}xk

xn =

n∑k=0

(−1)n−k

[n

k

]xk

xn =

n∑k=0

[n

k

]xk

{n

j

}=

1

j!

j∑k=0

(−1)j−k

(j

k

)kn

__debug untitled 32/9332/93

Page 34: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

BZOJ 2159

给定一棵 n 个点的树和一个常数 k, 对于每个 i, 求

S(i) =

n∑j=1

dist(i, j)k

n ≤ 50000, k ≤ 150

__debug untitled 33/9333/93

Page 35: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

S(i) =

n∑j=1

k∑l=0

{k

l

}dist(i, j)l

=

k∑l=0

{k

l

} n∑j=1

dist(i, j)l

=

k∑l=0

{k

l

}l!

n∑j=1

(dist(i, j)

l

)

利用组合数的递推式, 可以 O(k) 将 dist(i, j) 加 1. 然后就可以 DP了. 时间复杂度 O(nk).

__debug untitled 34/9334/93

Page 36: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

BZOJ 4555

求n∑

i=0

i∑j=0

{i

j

}2jj! (mod 998244353)

n ≤ 105

__debug untitled 35/9335/93

Page 37: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

直接斯特林反演

i∑j=0

2jj!

j∑k=0

(−1)j−k

(j − k)!

∑ni=0 k

i

k!

FFT 即可.

__debug untitled 36/9336/93

Page 38: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

原题的价值

定义一个无向图的权值为所有节点的度数的 k 次方之和. 求所有 n个点的简单无向图的权值之和, 对 998244353 取模.

n ≤ 109, k ≤ 105

__debug untitled 37/9337/93

Page 39: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

考虑每个点的贡献, 发现答案就是(n−1∑i=0

(n− 1

i

)ik

)2

(n−1)(n−2)2 n

转化为求n∑

i=0

(n

i

)ik

__debug untitled 38/9338/93

Page 40: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

n∑i=0

(n

i

)ik =

n∑i=0

(n

i

) k∑j=0

{k

j

}ij

=

n∑i=0

(n

i

) k∑j=0

{k

j

}(i

j

)j!

=

k∑j=0

{k

j

}j!

n∑i=0

(n

i

)(i

j

)

=

k∑j=0

{k

j

}j!

(n

j

) n∑i=0

(n− j

i

)

=

k∑j=0

{k

j

}nj2n−j

利用斯特林反演, FFT 快速求第二类斯特林数即可.

__debug untitled 39/9339/93

Page 41: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

LOJ 2327

两个人玩一个有限状态非对称组合游戏.给出 m 个棋盘, 求所有 2m 个子集的胜负结果.

__debug untitled 40/9340/93

Page 42: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

看题解.

__debug untitled 41/9341/93

Page 43: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

拉格朗日插值

给定 n+ 1 个点 (x0, y0), (x1, y1), ..., (xn, yn), 求一个 n 次函数穿过这些点.

ℓk(x) =

n∏j=0,j ̸=k

x− xjxk − xj

L(x) =

n∑k=0

ykℓk(x)

__debug untitled 42/9342/93

Page 44: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

差分表

给定 n+ 1 个点 (0, y0), (1, y1), ..., (n, yn), 求一个 n 次函数穿过这些点.

∆0f(j) = f(j)

∆kf(j) = ∆k−1f(j + 1)−∆k−1f(j)

可以证明

f(x) =

n∑k=0

(x

k

)∆kf(0)

∆0f(0),∆1f(0), ...,∆nf(0) 被称作差分表的第一条对角线.

__debug untitled 43/9343/93

Page 45: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

例如 f(x) = 2x3 + 2x2 − 4x+ 1 的差分表为

1, 1, 16, 60, 144, 513, ...

0, 16, 44, 84, 136, ...

16, 28, 40, 52, ...

12, 12, 12, ...

0, 0, ...

__debug untitled 44/9344/93

Page 46: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

例如 f(x) = 2x3 + 2x2 − 4x+ 1 的差分表为

1, 1, 16, 60

0, 16, 44

16, 28

12

第一条对角线为1, 0, 16, 12

__debug untitled 45/9345/93

Page 47: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

自然数幂和

给定 n, m, 求∑m

k=0 kn, 对质数 p 取模.

n ≤ 1000,m ≤ 109

__debug untitled 46/9346/93

Page 48: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

考虑 f(x) = xn 这一函数的差分表的第 0 条对角线 c0...cn.

m∑k=0

f(k) =

m∑k=0

n∑j=0

cj

(k

j

)

=

n∑j=0

m∑k=0

cj

(k

j

)

=

n∑j=0

cj

(m+ 1

j + 1

)

由于模数为质数, 可以 O(n2) 计算.

__debug untitled 47/9347/93

Page 49: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

由之前的做法可知∑m

k=0 kn 是一个关于 m 的 n+ 1 次多项式. 直

接拉格朗日插值即可.取 k = 0...n+ 1 时的函数值, 此时拉格朗日插值可优化为 O(n). 要算出这些函数值, 线性筛一下也是 O(n) 的.

__debug untitled 48/9348/93

Page 50: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

study

给定 k, a, n, d, 求

n∑i=0

a+id∑j=1

j∑l=1

lk mod 1234567891

k ≤ 3000, a, n, d < 1234567891

__debug untitled 49/9349/93

Page 51: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

首先注意到∑j

l=1 lk 是一个关于 j 的 k + 1 次多项式.

然后注意到∑a+id

j=1

∑jl=1 l

k 是一个关于 i 的 k + 2 次多项式.所以答案就是一个关于 n 的 k + 3 次多项式.

先把∑j

l=1 lk 的差分表第一条对角线求出来, 然后 O(k2) 求出∑a+id

j=1

∑jl=1 l

k 在 i = 0, 1, ..., k + 2 时的值. 最后再把∑a+idj=1

∑jl=1 l

k 的第一条对角线求出来, 直接算就可以了.

__debug untitled 50/9350/93

Page 52: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

微积分

假设大家都已经 (不一定系统地) 学过微积分了.

__debug untitled 51/9351/93

Page 53: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

极限

Let f(x) be defined on an open interval about c, except possibly at citself. We say that the limit of f(x) as x approaches c is the numberL, and write

limx→c

f(x) = L

if, for every number ϵ > 0, there exists a corresponding number δ > 0such that for all x,

0 < |x− c| < δ =⇒ |f(x)− L| < ϵ

__debug untitled 52/9352/93

Page 54: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

连续

limx→c

f(x) = f(c)

limx→c+

f(x) = f(c)

limx→c−

f(x) = f(c)

__debug untitled 53/9353/93

Page 55: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

导数

f′(x) = lim

h→0

f(x+ h)− f(x)

h

= limz→x

f(z)− f(x)

z − x

例子: 求 (√x)

′ .

__debug untitled 54/9354/93

Page 56: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

(√x)

′= lim

z→x

√z −

√x

z − x

= limz→x

√z −

√x

(√z −

√x)(

√z +

√x)

= limz→x

1√z +

√x

=1

2√x

__debug untitled 55/9355/93

Page 57: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

记号

f′(x) = y

′=

dy

dx=

d

dxf(x)

f′′(x) = y

′′=

d2y

dx2=

d

dx

(dy

dx

)解释:

dy = f′(x)dx

__debug untitled 56/9356/93

Page 58: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

运算法则

d

dx(u± v) =

du

dx± dv

dxd

dx(cu) = c

du

dxd

dx(uv) = v

du

dx+ u

dv

dx

d

dx(u

v) =

v dudx − u dv

dx

v2

dy

dx=

dy

du

du

dx

__debug untitled 57/9357/93

Page 59: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

指数函数求导

d

dx(ex) = ex

__debug untitled 58/9358/93

Page 60: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

三角函数求导

d

dx(sinx) = cosx

d

dx(cosx) = − sinx

d

dx(tanx) = − 1

cos2 x = − sec2 xd

dx(secx) = secx tanx

提示:limθ→0

sin θ

θ= 1

__debug untitled 59/9359/93

Page 61: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

反函数求导

f−1(b) =1

f ′(f−1(b))

例子: 求 ddx(lnx).

__debug untitled 60/9360/93

Page 62: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

d

dx(lnx) =

1

elnx

=1

x

__debug untitled 61/9361/93

Page 63: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

反三角函数求导

d

dx(arcsinx) =

1

cos(sin−1 x)

=1√

1− sin2(arcsinx)

=1√

1− x2

d

dx(arccosx) = − 1√

1− x2

d

dx(arctanx) =

1

1 + x2

__debug untitled 62/9362/93

Page 64: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

xn 求导

当 x > 0 时,xn = en lnx

d

dx(xn) =

d

dxen lnx

= en lnx d

dx(n lnx)

= xnn

x= nxn−1

__debug untitled 63/9363/93

Page 65: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

洛必达法则

当 f(a), g(a) 都为 0 或 ∞ 时, 有

limx→a

f(x)

g(x)= lim

x→a

f′(x)

g′(x)

例子: 证明lim

x→0+(1 + x)1/x = e

__debug untitled 64/9364/93

Page 66: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

令 f(x) = (1 + x)1/x, 因为

ln f(x) =1

xln(1 + x)

所以

limx→0+

ln f(x) = limx→0+

ln(1 + x)

x= 1

于是lim

x→0+(1 + x)1/x = lim

x→0+eln f(x) = e

__debug untitled 65/9365/93

Page 67: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

牛顿迭代

任取一个 x0

xn+1 = xn − f(xn)

f ′(xn)

不一定收敛.

__debug untitled 66/9366/93

Page 68: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

反导数

F 是 f 的反导数当且仅当 F′(x) = f(x).

定理: 如果 F 是 f 的一个反导数, 那么所有 f 的反导数形如

F (x) + C

__debug untitled 67/9367/93

Page 69: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

定积分

∫ b

af(x) dx = lim

n→∞

n∑k=1

f

(a+ k

b− a

n

)(b− a

n

)

__debug untitled 68/9368/93

Page 70: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

微积分基本定理

F′(x) =

d

dx

∫ x

af(t)dt = f(x)∫ b

af(x) dx = F (b)− F (a)

__debug untitled 69/9369/93

Page 71: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

不定积分

∫f(x) dx = F (x) + C

__debug untitled 70/9370/93

Page 72: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

换元积分法

∫f(u)

du

dxdx =

∫f(u) du

例子: ∫ √2x+ 1 dx

__debug untitled 71/9371/93

Page 73: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

令 u = 2x+ 1, 则

du

dx= 2

dx =du

2

于是 ∫ √2x+ 1 dx =

∫ √u dx

=

∫ √udu

2

=1

2

∫ √u du

=u3/2

3+ C

=1

3(2x+ 1)3/2 + C

__debug untitled 72/9372/93

Page 74: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

例子: ∫tanx dx

__debug untitled 73/9373/93

Page 75: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

令 u = cosx, 则 ∫tanx dx =

∫ sinx

cosxdx

=

∫−1

udu

= − ln |u|+ C

= − ln | cosx|+ C

= ln | secx|+ C

__debug untitled 74/9374/93

Page 76: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

分部积分法

∫u dv = uv −

∫v du

例子: ∫x cosx dx

__debug untitled 75/9375/93

Page 77: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

令 u = x, dv = cosx dx, 则 du = dx, v = sinx, 有∫x cosx dx = x sinx−

∫sinx dx

= x sinx+ cosx+ C

__debug untitled 76/9376/93

Page 78: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

例子: ∫lnx dx

__debug untitled 77/9377/93

Page 79: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

令 u = lnx, dv = dx, 则 du = 1x , v = x, 有∫

lnx dx = x lnx−∫

x1

xdx

= x lnx− x+ C

__debug untitled 78/9378/93

Page 80: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

其他基本积分技巧

• 三角函数积分• 三角换元• 部分分式展开• ...

__debug untitled 79/9379/93

Page 81: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

例子: 分析复杂度

√n∑

i=1

√i+

√n

i

logn

(为了方便, 把 log 提出来了, 反正是上界)求导近似∫ √

x+

√n

xdx =

∫ √x dx+

∫ √n

xdx =

2x32

3+ 2

√nx

带进去就是 8n3/4

3 . 时间复杂度 O(n3/4 logn).

__debug untitled 80/9380/93

Page 82: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

如果预处理前 k, (k >√n) 项, 那么复杂度渐进上界为

k +

⌊n/k⌋∑i=1

√⌊ni

⌋ logn

求导近似 ∫ √n

xdx = 2

√nx

带入

k +2n√k

logn

不管 log 和常数, 当 k = n2/3 时有最小值.时间复杂度 O(n2/3 logn).

__debug untitled 81/9381/93

Page 83: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

kara

给你一个 n 维超立方体,第 i 个维度的长度为 ri ,同时给你一个n 维超平面 x1 + x2 + ...+ xn = S. 这个超平面把超立方体切成至多两部分, 求原点所在的那一部分的面积.

__debug untitled 82/9382/93

Page 84: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

设 An(x) 为在 n 维空间里 S = x, 且长度没有限制的面积.发现 An(x) 是 An−1(x0) 在 [0, x] 上的定积分, 显然

An(x) =xn

n!

接下来考虑坐标的限制, 即∑

xi ≤ S, 其中每个 xi ∈ [0, ri] 。考虑容斥. 我们把没有限制的情况分别减去第 1, 2, ..., n 个元素超过限制的情况, 再加上第 1, 2, 第 1, 3 等元素同时超过限制的情况......注意到 N × maxAi 不会很大, 容斥可以用 DP 优化.

__debug untitled 83/9383/93

Page 85: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

一阶线性微分方程

dy

dx+ P (x)y = Q(x)

__debug untitled 84/9384/93

Page 86: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

构造 v(x) 满足

vdy

dx+ Pvy =

d

dx(vy)

dy

dx+ P (x)y = Q(x)

v(x)dy

dx+ P (x)v(x)y = v(x)Q(x)

d

dx(v(x)y) = v(x)Q(x)

v(x)y =

∫v(x)Q(x) dx

y =1

v(x)

∫v(x)Q(x) dx

__debug untitled 85/9385/93

Page 87: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

回来构造 v(x):

vdy

dx+ Pvy =

d

dx(vy)

vdy

dx+ Pvy = v

dy

dx+ y

dv

dx

Pvy = ydv

dxdv

dx= Pv

dv

v= Pdx∫

dv

v=

∫P dx

ln v =

∫P dx

v = e∫P dx

__debug untitled 86/9386/93

Page 88: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

辛普森积分

∫ b

af(x) dx ≈ b− a

6

(f(a) + 4f

(a+ b

2

)+ f(b)

)常用自适应辛普森.

__debug untitled 87/9387/93

Page 89: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

BZOJ 1502 月下柠檬树

模板题.

__debug untitled 88/9388/93

Page 90: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

多变量微积分

对某个变量 xi 求偏导就是把其它的变量视为常数, 然后求普通的导数.

__debug untitled 89/9389/93

Page 91: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

拉格朗日乘数

找到 f(x1, x2, ..., xn) 的极值点, 满足 g(x1, x2, ..., xn) = 0.

∇f = λ∇g

__debug untitled 90/9390/93

Page 92: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

BZOJ 2876 骑行川藏

模板题.

__debug untitled 91/9391/93

Page 93: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

单纯形

参考算法导论.

__debug untitled 92/9392/93

Page 94: zory.ink–‡章/数论debug.pdf最大公约数, 最小公倍数 lcm(S) =∏ TˆS gcd(T)(j1) Tj+1gcd(Fib(a);Fib(b)) = Fib(gcd(a;b))gcd(xa 1;xb 1) = xgcd(a;b) 1__debug untitled 2/93

BZOJ 1061 志愿者招募

模板题.

__debug untitled 93/9393/93