LibreOJ #6583. 「ICPC World Finals 2019」何以伊名始 AC自动机+fail树
题意
给你一棵树,NNN个节点,每个节点有一个字母,给出Q个询问,询问有多少个节点从下到上能够跟询问串匹配
N≤106N\leq 10^6N≤106
分析
把询问串和树并在一起,然后建立fail树,siz从深度大到深度小合并,询问就询问fail树的某个点的子树和就好了
代码
#include <bits/stdc++.h>
#define rep(i,a,b) for(int i=(a);i<=(b);++i)
#define dep(i,a,b) for(int i=(a);i>
原创
2020-07-19 19:49:03 ·
295 阅读 ·
5 评论