P5333 [JSOI2019] 神经网络

发布时间 2023-12-26 19:16:01作者: 275307894a

题面传送门

本来以为 \(m\) 这么小是 \(m\sum k_i\log k\) 的 NTT 的,写完发现一点不用(

首先我们发现,这样的图上面的一个哈密顿回路可以表示成原森林若干条链,每个点都在其中一条链上,且相邻两条链不在同一棵树上。

先跑一个 DP 把 \(f_{i,j}\) 表示用 \(j\) 条链覆盖 \(i\) 的方案数有几种跑出来,然后我们要处理在同一棵树上的链不相邻的限制。我们显然可以设计一个 DP:设 \(dp_{i,j}\) 表示考虑到了前 \(k\) 棵树,有 \(j\) 个相邻的方案数,但是这样子 DP 是 \(O((\sum k)^3)\) 的。

我们需要进行一个斥的容,具体的,先对于每棵树内部钦定若干条链在最终序列中放在一起,然后转移就可以直接合并,这样复杂度就是 \(O((\sum k)^2)\) 的。

注意对第一棵树特殊处理。

submission