摘要: 题意 "题目链接" Sol 神仙题Orz 后缀自动机 + 线段树合并。。。 首先可以转化一下模型(想不到qwq):问题可以转化为统计$B$中每个前缀在$A$中出现的次数。(画一画就出来了) 然后直接对$A$串建SAM,线段树合并维护一下siz就行了 cpp include using namespa 阅读全文
posted @ 2019-02-20 20:59 自为风月马前卒 阅读(471) 评论(0) 推荐(0)
摘要: 题意 "题目链接" Sol 神仙题Orz 后缀自动机 + 线段树合并 首先对所有的$t_i$建个广义后缀自动机,这样可以得到所有子串信息。 考虑把询问离线,然后把$S$拿到自动机上跑,同时维护一下最长能匹配的位置,对于每个以$i$位置为右端点的询问我们需要找到$len$最小的状态满足$len[sta 阅读全文
posted @ 2019-02-20 16:20 自为风月马前卒 阅读(560) 评论(0) 推荐(1)
摘要: 题意 "题目链接" Sol 广义后缀自动机板子题。。和BZOJ串那个题很像 首先建出询问串的SAM,然后统计一下每个节点被多少个串包含 最后直接拿询问串上去跑就行了 cpp include using namespace std; const int MAXN = 1e6 + 10; int N, 阅读全文
posted @ 2019-02-20 11:43 自为风月马前卒 阅读(274) 评论(0) 推荐(0)
摘要: 题意 "题目链接" Sol 广义SAM的板子题。 首先叶子节点不超过20,那么可以直接对每个叶子节点为根的子树插入到广义SAM中。 因为所有合法的答案一定是某个叶子节点为根的树上的一条链,因此这样可以统计出所有合法的答案 然后就是经典的本质不同子串问题了,$ans = \sum len[i] len 阅读全文
posted @ 2019-02-20 11:13 自为风月马前卒 阅读(279) 评论(0) 推荐(0)

Contact with me