时间安排
7:30–7:35 读题。T2是个图DP,按照套路枚举连通块应该可以做。
7:35–8:40 T1,2的暴力,T1直接阶乘暴力枚举匹配,T2状压边。
8:40–8:45 T3,发现暴力很难写。先做T1.
8:45–9:20 T1,本以为费用流二分图复杂度是
n
n
n\sqrt n
nn 的,复杂度总计3e7左右。于是开始写暴力费用流。笑死根本跑不过去。
9:20–10:30 T3,考虑直接设置状态dpi,j,暴力维护在点i,时刻为j的最优答案,然后暴力枚举起点,这是
n
2
T
n^2T
n2T 的,只能过掉第一档,显然和<=10的数据范围很不搭。意识到只要将DP倒叙就可以求得所有答案,那么复杂度就变成了
n
T
nT
nT。可以拿30分。对于正解,意识到有用的点数只有Q个,考虑能否树形DP出一段时间内走的答案,然后均摊Q的DP。但是感觉非常不好做。
10:30–11:00 看T1,没什么思路。
11:00–11:50 T2,考虑按照套路枚举1号点所在连通块转移,凭着感觉写DP。样例是在太水了写的啥也不是都能过,还好及时反应过来了。然后悲剧的发现复杂度是
n
2
k
2
n^2k^2
n2k2的,不过能优化掉一个k,变成
n
2
k
n^2k
n2k ,能拿60分左右。测大样例发现乘炸了,检查发现有个地方没取模。感觉能继续优化来着但是没时间了。
赛后:T3的分段逻辑有问题,挂了10分。
回顾&反思
T1:比赛的时候没有往建图上面去想,莽了个费用流就没在管了。感觉这种建图/树解决字符串前后缀问题的套路还是比较常见的?四维莫队好神奇。
T2:感觉60的部分分花的时间太多了,这种套路还是要熟悉起来好。至于正解,一步关键的转化在于,在拆解k次幂的时候,是从下降幂的角度考虑的,这样就转化为另一个较为简单的计数问题,而我则是拆成了另一个k次幂,从子问题的角度考虑,没能有效化简问题。EGF对于标号的处理真的神奇,取k个树,只要对点取有标号,然后无脑取EGF的k次幂就可以了。一些定理和trick是我所不知道/熟悉的,比如有标号树的个数是
n
n
−
2
n^{n-2}
nn−2 ,求联通图和无限制图之间exp和ln的关系等。
∑
f
(
x
)
i
i
!
=
e
f
(
x
)
\sum\frac{f(x)^i}{i!}=e^{f(x)}
∑i!f(x)i=ef(x)。
T3: 还不会。