B
问题描述
样例输入
3 10
AT
TT
AAAAA
3 10
ATT
TT
AAAAA
样例输出
No
Yes
提示
构造一个串不含某些给定串,考虑将给定串构造AC自动机,并将其改造成有限状态自动机(每个点不存在的转移改成fail树上第一个该转移),将串结尾的标记沿着fail树传上去,然后如果自动机的转移中存在环,那么一定有解,否则
该图为DAG,求出从根节点出发的最长路(不能经过串结尾),最长路长度就是能构造出串的最大长度。
复杂度$O(\sum |s|)$
代码:
1 |
|
问题描述
样例输入
3 10
AT
TT
AAAAA
3 10
ATT
TT
AAAAA
样例输出
No
Yes
提示
构造一个串不含某些给定串,考虑将给定串构造AC自动机,并将其改造成有限状态自动机(每个点不存在的转移改成fail树上第一个该转移),将串结尾的标记沿着fail树传上去,然后如果自动机的转移中存在环,那么一定有解,否则
该图为DAG,求出从根节点出发的最长路(不能经过串结尾),最长路长度就是能构造出串的最大长度。
复杂度$O(\sum |s|)$
代码:
1 | #include<stdio.h> |