2019 North-Western Russia 区域赛

rank solved A B C D E F G H I J K L M
10 11 O O O Ø O . . O O O O O O

A

Solved by Henry.

B

Solved by XLor.

打表乱搞。

从两边每次暴力取一个小的变化量生成 Treap,加亿点剪枝即可卡过。

C

Solved by Henry.

答案一定等于 $4x-1$ ($x$ 为 $X$ 的个数)。

将边分为两类,生成一个欧拉回路即可。

D

UpSolved by XLor.

求长度小于等于 $n$,字符集大小为 $k$ 的串中,有多少个存在弱双回文划分。

去重前的总方案数 $R(n)=\sum_{i=0}^{n-1} k^{\lceil \frac{i}{2} \rceil} k^{\lceil \frac{n-i}{2} \rceil }$。

但是,存在一些串有多种弱双回文划分,例如 $abaaba$ 有两种划分方式。有一个结论,这样的串一定是整周期串,且最小周期是 $p$,方案数为 $|s|/p$。

考虑 $D(n)$ 表示只有一种划分方式的本源串,则 $D(n)=R(n)-\sum_{l|n \land l<n} \frac{n}{l} D(l) $。

最终答案,考虑周期串后为 $\sum_{i=1}^n \sum_{l|i} D(l)$。

E

Solved by XLor.

$m$ 个关键点一起 $bfs$,每个点维护一下最短距离和多少个关键点能够以最短距离到达该点,转移时分从未访问过和最短距离相同,若出现一个点次数为关键点个数,即为答案。

H

Solved by Forsaken.

分块。

I

Solved by Henry.

J

Solved by Forsaken.

K

Solved by Forsaken.

L

Solved by XLor.

答案大于等于 $2$,扣一哈 $Runs$。

答案小于 $2$,$sam$ 上启发式合并一下。

M

Solved by XLor.

暴力枚举两个,std::map 维护另外一个。