B
P6563 [SBCOI2020] 一直在你身旁,\(n\le 10^5\),\(c_i\le 9\)。
考虑利用 \(c_i\le 9\) 的性质,那么最后答案很小。
我们原本是计算每个区间的答案,同时区间答案具有单调性,那么考虑把答案放进状态里即可。
即维护 \(f_{l,ans}\) 表示花费 \(ans\) 的代价能确定的最远的 \(r\)。
C
请计算本质不同的两端都有循环节的字符串数量,满足某些字符串是不出现在子串里。
首先,看到多模匹配问题,肯定考虑 AC 自动机。
思考 −1 在什么时候出现:如果有两个环,他们可以互相到达,那么他们之间走来走去就会产生无限多的合法串。这启发我们进行一步缩点,如果存在一个强连通分量 边数 > 点数,那么答案为 −1(因为出现了环套环)。剩下的是一张 DAG,我们要统计的就是图上经过至少一个环的路径数量。
仔细分类讨论之后发现还漏了一种情况:一条路径上有三个环的时候,中间那个环走几次是任意的,也有无限种情况。特判一下即可。