博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
审查(黄金)Censoring (Gold)
阅读量:5076 次
发布时间:2019-06-12

本文共 840 字,大约阅读时间需要 2 分钟。

暴力玄学AC自动机

sign记录当前节点扫到AC自动机的哪个地方,我们开一个next数组和pre数组,记录当前这个点的后面那个点是几号、前面那个点是几号,每当发现一个能删去的字符串的时候,暴力跳到字符串头上的pre,将其的next修改为字符串尾的next,修改一下now,继续扫就行,这样也能A。因为要O(n)预处理一下next和pre,所以会比法1稍微慢一丢丢。

1 #include
2 #include
3 #include
4 #include
5 using namespace std; 6 typedef long long ll; 7 const int maxn=100000+10; 8 const ll b=131; 9 ll Hash[maxn],Pow[maxn]={
1};10 char str[maxn],u[maxn],tmp[maxn];11 struct Tmp12 {13 int len;14 ll Hash;15 }t[maxn];16 bool cmp(const Tmp & a,const Tmp & b)17 {18 return a.len
=1&&GetHash(ptr-t[j].len+1,ptr)==t[j].Hash){ptr-=t[j].len;}46 }47 for(int i=1;i<=ptr;++i)48 putchar(u[i]);49 puts("");50 return 0;51 }

 

 

转载于:https://www.cnblogs.com/ainiyuling/p/11149849.html

你可能感兴趣的文章
Bootstrap栅格学习
查看>>
程序员的数学
查看>>
聚合与组合
查看>>
jQuery如何获得select选中的值?input单选radio选中的值
查看>>
设计模式 之 享元模式
查看>>
如何理解汉诺塔
查看>>
洛谷 P2089 烤鸡【DFS递归/10重枚举】
查看>>
15 FFT及其框图实现
查看>>
Linux基本操作
查看>>
osg ifc ifccolumn
查看>>
C++ STL partial_sort
查看>>
3.0.35 platform 设备资源和数据
查看>>
centos redis 安装过程,解决办法
查看>>
IOS小技巧整理
查看>>
WebDriverExtensionsByC#
查看>>
我眼中的技术地图
查看>>
lc 145. Binary Tree Postorder Traversal
查看>>
sublime 配置java运行环境
查看>>
在centos上开关tomcat
查看>>
重启rabbitmq服务
查看>>