
ac自动机
make_it_for_good
这个作者很懒,什么都没留下…
展开
-
codeforces 710f String Set Queries ac自动机 二进制分组
题意:维护一个字符串集合,支持插入一个串,删除一个串,询问集合中的串在给出的串中出现多少次,一个串出现多次算多次。并且不会有两次插入的串相同。强制在线。考虑没有删除的情况,将插入串的个数二进制拆分,对于每2k2^k 个串维护一个ac自动机。 这样共有loglog个ac自动机 。插入时如果当前ac自动机中串的个数和上一个个数相同,那么合并两个自动机。每个字符串只会被合并loglog 次。有删除时同原创 2016-09-02 19:05:06 · 1457 阅读 · 0 评论 -
bzoj1039 [ZJOI2008]无序运动Movement AC自动机 计算几何
对于平移,旋转,放缩,由于任意相邻两线段呈夹角不变,长度比例不变。因此只需要判断相邻两线段长度比例和夹角不变。 夹角可以用叉积和点积的比值以及符号确定。 注意必须保留两个符号。 然后可以用AC自动机计算,每个点的答案是这个点fail树子树中的点被长串经过的次数和。对于翻转操作只需把长的串翻转再做一遍。 注意判断翻转不变的串和长度小于3的串。#include <bits/stdc++.h> u原创 2016-11-23 14:49:03 · 1017 阅读 · 0 评论