代码可以看 l d x ldx ldx 的,反正我都是抄的他的 传送门
Missing a Point
把出现次数为奇数的行列找出来
Chefina and Swaps
贪心,注意可以将一个很小的换过来再换回去
Doctor Chef
注意到我们的策略就是不断把
X
X
X 搞成最大值,中途顺便搞定一些国家
没有搞定的国家可以通过一次操作搞定
考虑这么一个
D
P
DP
DP,
d
p
i
dp_i
dpi 表示
i
.
.
.
n
i...n
i...n 的贡献最小值(其中没有搞定的有 1 的贡献)
d
p
i
=
min
d
p
j
+
t
i
m
e
s
(
i
,
j
)
+
j
−
i
−
1
dp_i=\min dp_j+times(i,j)+j-i-1
dpi=mindpj+times(i,j)+j−i−1
注意到并不需要对每个
j
j
j 转移,我们枚举
a
i
∗
2
k
a_i*2^k
ai∗2k,那么一定会选择
a
j
≤
a_j\le
aj≤ 它的最大的
j
j
j
O
(
n
log
2
n
)
O(n\log^2n)
O(nlog2n)
LCM Constraints
分析一下发现,一个点要么选择出边的最小值,要么
<
<
< 最小值
暴力
2
n
2^n
2n 搜索,考虑折半,将两边搜出来
考虑一边的状态为
S
S
S,另一边相当于是钦定一些点选择最小值
那么就是要统计其超集的贡献,做子集卷积即可
Expected Repetitions
考虑枚举一个串
S
i
.
.
.
j
S_{i...j}
Si...j 以及它的周期
S
i
.
.
.
t
S_{i...t}
Si...t
需要满足
l
c
p
(
i
,
t
)
≥
j
−
t
+
1
lcp(i,t)\ge j-t+1
lcp(i,t)≥j−t+1,我们发现可以枚举
S
i
.
.
.
t
−
1
S_{i...t-1}
Si...t−1,它的贡献是
v
a
l
u
e
(
i
,
t
−
1
)
∗
l
c
p
(
i
,
t
)
value(i,t-1)*lcp(i,t)
value(i,t−1)∗lcp(i,t)
拆成前缀和
A
n
s
=
∑
i
∑
j
>
i
l
c
p
(
i
,
j
)
∗
(
s
u
m
j
−
1
−
s
u
m
i
−
1
)
Ans=\sum_{i}\sum_{j>i}lcp(i,j)*(sum_{j-1}-sum_{i-1})
Ans=∑i∑j>ilcp(i,j)∗(sumj−1−sumi−1)
注意到我们只需要统计
f
t
=
∑
i
<
t
l
c
p
(
i
,
t
)
f_t=\sum_{i<t}lcp(i,t)
ft=∑i<tlcp(i,t) 以及
g
t
=
∑
i
>
t
l
c
p
(
t
,
i
)
g_t=\sum_{i>t}lcp(t,i)
gt=∑i>tlcp(t,i)
我们用
S
A
M
SAM
SAM,线段树合并的时候把贡献算上即可
Weird Product
我们算出
(
−
1
)
n
(
n
+
1
)
2
∏
i
≠
j
S
i
−
S
j
(-1)^{\frac{n(n+1)}{2}}\prod_{i\neq j} S_i-S_j
(−1)2n(n+1)∏i=jSi−Sj,最后除以
X
X
X
这个形式可以构造
∏
(
S
i
−
S
j
)
S
i
−
S
i
=
(
∏
(
x
−
S
i
)
)
′
∣
x
=
S
i
\frac{\prod (S_i-S_j)}{S_i-S_i}=(\prod (x-S_i))'\Big|_{x=S_i}
Si−Si∏(Si−Sj)=(∏(x−Si))′∣∣∣x=Si
Expected Spanning Trees
考虑对每条边构造 EGF,分别是
e
x
−
e
−
x
2
,
e
x
+
e
−
x
2
\frac{e^x-e^{-x}}{2},\frac{e^x+e^{-x}}{2}
2ex−e−x,2ex+e−x
对于生成树上的边,我们用矩阵树定理,将其放在行列式中计算
对于不在生成树上的边,我们有
e
(
n
−
1
)
(
n
−
2
)
2
x
e^{\frac{(n-1)(n-2)}{2}x}
e2(n−1)(n−2)x 的贡献
即
z
=
e
x
z=e^x
z=ex,可以将行列式插值出来
O
(
n
4
)
O(n^4)
O(n4),最后是
[
x
T
]
T
!
∗
e
(
n
−
1
)
(
n
−
2
)
2
x
∑
i
c
o
e
f
i
∗
e
i
x
[x^T]T!*e^{\frac{(n-1)(n-2)}{2}x}\sum_i coef_i*e^{ix}
[xT]T!∗e2(n−1)(n−2)x∑icoefi∗eix,可以
O
(
n
log
P
)
O(n\log P)
O(nlogP) 计算
Easy Geo xD
a
n
s
=
∑
i
=
0
n
∑
j
=
0
m
[
a
i
+
b
j
≡
d
m
o
d
c
]
ans =\sum_{i=0}^n\sum_{j=0}^m[ai+bj\equiv d\mod c]
ans=∑i=0n∑j=0m[ai+bj≡dmodc]
令
a
=
c
−
a
a=c-a
a=c−a,考虑 枚举
i
i
i,并令
e
=
gcd
(
b
,
c
)
e=\gcd (b,c)
e=gcd(b,c),并将
b
,
c
b,c
b,c 除去
e
e
e
那么问题变成求
j
∈
[
0
,
m
]
,
j
≡
b
−
1
(
d
+
a
i
)
e
m
o
d
c
j\in[0,m],j\equiv b^{-1}\frac{(d+ai)}{e}\mod c
j∈[0,m],j≡b−1e(d+ai)modc
令
t
=
b
−
1
(
d
+
a
i
)
e
m
o
d
c
t=b^{-1}\frac{(d+ai)}{e}\mod c
t=b−1e(d+ai)modc,那么个数即为
⌊
m
−
t
c
⌋
=
⌊
m
c
⌋
+
[
m
m
o
d
c
≥
t
]
\lfloor\frac{m-t}{c}\rfloor=\lfloor\frac{m}{c}\rfloor+[m\mod c\ge t]
⌊cm−t⌋=⌊cm⌋+[mmodc≥t]
那么就是算(令
M
=
m
m
o
d
c
M=m\mod c
M=mmodc)
⌊
m
c
⌋
∑
i
=
1
n
[
e
∣
a
i
+
d
]
+
∑
i
=
1
n
[
e
∣
a
i
+
d
]
[
b
−
1
(
d
+
a
i
)
e
m
o
d
c
≤
M
]
\lfloor\frac{m}{c}\rfloor\sum_{i=1}^n[e|ai+d]+\sum_{i=1}^n[e|ai+d][b^{-1}\frac{(d+ai)}{e}\mod c\le M]
⌊cm⌋i=1∑n[e∣ai+d]+i=1∑n[e∣ai+d][b−1e(d+ai)modc≤M]
前面就是
∑
i
=
0
n
[
a
i
≡
−
d
m
o
d
e
]
\sum_{i=0}^n[ai\equiv -d\mod e]
∑i=0n[ai≡−dmode],可以解方程得到(令
g
=
gcd
(
a
,
c
)
g=\gcd (a,c)
g=gcd(a,c),
a
,
d
,
e
a,d,e
a,d,e 同除
g
g
g)
考虑最小解
i
=
z
i=z
i=z,以及
t
=
b
−
1
(
d
+
a
z
)
e
t=b^{-1}\frac{(d+az)}{e}
t=b−1e(d+az),令
a
=
a
∗
b
−
1
a=a*b^{-1}
a=a∗b−1
那么之后的解就是
t
,
t
+
a
,
t
+
2
a
…
t,t+a,t+2a\dots
t,t+a,t+2a…,令
c
t
=
⌊
n
e
⌋
+
[
n
m
o
d
e
≥
z
]
ct=\lfloor\frac{n}{e}\rfloor+[n\mod e\ge z]
ct=⌊en⌋+[nmode≥z]
∑
i
=
0
c
t
−
1
[
a
i
+
t
m
o
d
c
≤
R
]
=
∑
i
=
0
c
t
−
1
⌊
a
i
+
t
c
⌋
−
⌊
a
i
+
t
−
R
−
1
c
⌋
\sum_{i=0}^{ct-1}[ai+t\mod c\le R]=\sum_{i=0}^{ct-1}\lfloor\frac{ai+t}{c}\rfloor-\lfloor\frac{ai+t-R-1}{c}\rfloor
∑i=0ct−1[ai+tmodc≤R]=∑i=0ct−1⌊cai+t⌋−⌊cai+t−R−1⌋
用类欧几里得解决