【题解】CF1574F Occurrences 图论、自然根号、DP
对于每个串 \(A_i\) 最严格的限制即 \(A_i\) 中所有出现的字符的出现次数等于串 \(A_i\) 出现的次数。
即若 \(A_{i,j}\) 在构造的序列中出现,前面必须是 \(A_{i,j-1}\) 后面必须是 \(A_{i,j+1}\) 。
考虑构造一张有向图,对于每个串 \(A_i\) 连边 \(A_{i,j-1} \to A_{i,j}\) 。
如果我们构造的序列中包含元素 \(q\) ,那么 \(q\) 的前驱后继个数一定小于等于 \(1\) 。
可以发现,我们最后选的一定是该有向图中的若干条链。
那么直接遍历每个弱连通块即可(注意处理重边、自环。)。
令 \(cnt_i\) 为长度为 \(i\) 的链的条数。
因为 \(\sum_{i=1}^{\sqrt{n}}i=O(n)\) 。 所以长度不同的链的个数是 \(O(\sqrt{k})\) 级别的。
直接背包复杂度为 \(O(m\sqrt{k})\) 。