求最长不含禁止子串的字符串 AC自动机+DP + dfs判环 UVA 1399 - Puzzle
发布时间
阅读量:
阅读量
题意:已知K与N的数值,其中K代表存在K类不同的字符,N表示有N个被禁止的字符串,目标是寻找一个长度最长的字符串,该字符串中不能包含任何被禁止字符串作为其子串。若发现存在循环结构或无法构造出符合条件的字符串,则应输出No。
思路:构建AC自动机结构,将所有不可通行的节点进行标记处理,随后在生成的状态图中运用动态规划方法计算最长路径。针对可能出现无限长度的情况,在执行动态规划操作之前,首先通过一次深度优先搜索判断图中是否存在环路。
代码:
#include <cstdio>
#include <cstring>
#include <string>
#include
全部评论 (0)
还没有任何评论哟~
