2021浙江省赛

A

签到

C

简单题

D

最短路、树相关 待补

F

数学、思维

首先由于$n’$最终取值范围为$[1,n]$,所以枚举$n’$可以得到一个$O(n)$的做法

然后把$[1,n]$分块为$[1,\sqrt m],[\sqrt{m}+1,\min\{n,m\}]$两部分,枚举第一部分n’取值,复杂度$O(\sqrt n)$,对于第二部分,可以把式子写成$m’=n’k$,此时$k$的取值范围为$[1,\sqrt m]$,枚举k,对于每个固定的k,可以找到一个贪心方案使代价最小,所以第二部分的代价也是$O(\sqrt m)$.

G

并查集,可以发现每一条边相邻的块都是2个,只有一个相邻块被占领时,这条边记录进答案,两个块都被占领时,这条边不记录进答案。

模拟赛写这题的时候一直在想怎么把每条边都映射到一个数,再用数组记录这条边的状态,然后就要开两个map,时间常数非常大一直tle。但是实际上由于一条边只和两个块相关,所以只要用相邻的两个块判断边的状态就可以了。

I

好像是个思维题

J

简单背包

L

KMP相关

原算法相当于将模式串每个位置的fail指针都视为1

hack方法就是判断模式串的fail指针是否全1

有一个简单的做法就是判断是否存在$i\in[2,n]$满足s[i]==s[1],若有则可以被hack

M

简单题