Advertisement

求最长不含禁止子串的字符串 AC自动机+DP + dfs判环 UVA 1399 - Puzzle

阅读量:

题目链接

题意:已知K与N的数值,其中K代表存在K类不同的字符,N表示有N个被禁止的字符串,目标是寻找一个长度最长的字符串,该字符串中不能包含任何被禁止字符串作为其子串。若发现存在循环结构或无法构造出符合条件的字符串,则应输出No。

思路:构建AC自动机结构,将所有不可通行的节点进行标记处理,随后在生成的状态图中运用动态规划方法计算最长路径。针对可能出现无限长度的情况,在执行动态规划操作之前,首先通过一次深度优先搜索判断图中是否存在环路。

代码:

复制代码
 #include <cstdio>  
    
 #include <cstring>  
    
 #include <string>  
    
 #include

全部评论 (0)

还没有任何评论哟~