CF1739F题解
每个串提供的信息是若干个相邻字符的限制,如果相邻字符连边,最后一定得到一条链,否则这个串不可能被表示出来。
得到的这条链相当于答案的一个子串,如果最后答案包含这个字串,那么就会有 \(c_i\) 的贡献。
由于有多个串,考虑建立AC自动机,把贡献累计到每个串对应的节点上,那么原问题就相当于把最后的排列放到自动机上去匹配,如果匹配到一个子串就会有对应的贡献,求这个贡献的最大值。
考虑在自动机上进行 \(dp\),由于字符集较小,考虑状压,\(dp_{i,j}\) 表示在自动机节点 \(i\),已经用了 \(j\) 状态的字符的最大贡献,转移就枚举不在状态中的字符就行了。
浙公网安备 33010602011771号