吃什么


Code

// by spli
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
using namespace std;const int N=1000010;
int n;
char s[N];
int tot;
struct AC_automaton{int fail;int to[26];int end;
}ac[N];
queue<int>q;
int ans;void build(){int now=0,ch;int len=strlen(s+1);for(int i=1;i<=len;++i){ch=s[i]-'a';if(!ac[now].to[ch]) ac[now].to[ch]=++tot;now=ac[now].to[ch];}ac[now].end++;
}void getfail(){for(int i=0;i<26;++i) if(ac[0].to[i]) q.push(ac[0].to[i]),ac[ac[0].to[i]].fail=0;while(!q.empty()){int u=q.front();q.pop();for(int i=0;i<26;++i){int v=ac[u].to[i];if(v) ac[v].fail=ac[ac[u].fail].to[i],q.push(v);else ac[u].to[i]=ac[ac[u].fail].to[i];}}
}void query(){int now=0,ch;int len=strlen(s+1);for(int i=1;i<=len;++i){ch=s[i]-'a';//写成-'0'身败名裂now=ac[now].to[ch];for(int j=now;j&&ac[j].end!=-1;j=ac[j].fail){ans+=ac[j].end;ac[j].end=-1;}}
}int main(){scanf("%d",&n);for(int i=1;i<=n;++i){scanf("%s",s+1);build();}getfail();scanf("%s",s+1);query();cout<<ans;return 0;
}

AC_automaton 模板相关推荐

  1. ACM巨全模板(下)

    柯氏模板(下) 柯氏模板(上) 柯氏模板(中) pdf下载 本模板博主还在完善ing-谢谢大家观看 计算几何: 1.三角形 (求面积)) 2.多边形 3.三点求圆心和半径 4.扫描线 (矩形覆盖求面积 ...

  2. VS Code 安装插件、自定义模板、自定义配置参数、自定义主题、配置参数说明、常用的扩展插件

    1. 下载和官网教程 下载地址:https://code.visualstudio.com/ 官方教程:https://code.visualstudio.com/docs 2. 安装插件 安装扩展插 ...

  3. SpringBoot (三) :SpringBoot使用Freemarker模板引擎渲染web视图

    什么是Freemarker FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页.电子邮件.配置文件.源代码等)的通用工具. 它不是面向最终用户的,而 ...

  4. SpringBoot-web开发(三): 模板引擎Thymeleaf

    [SpringBoot-web系列]前文: SpringBoot-web开发(一): 静态资源的导入(源码分析) SpringBoot-web开发(二): 页面和图标定制(源码分析) 目录 1. 引入 ...

  5. 二分查找模板全面总结

    二分查找 二分法的引入 情形1 1.X的平方根 2.搜索旋转排序数组 情形2 1.第一个错误的版本 2.寻找峰值 3.寻找旋转排序数组中的最小值 情形3 在排序数组中查找第一个和最后一个位置 当遇到查 ...

  6. Django 模板HTML转义和CSRF4.3

    Django对字符串进行自动HTML转义,如在模板中输出如下值: 视图代码: def index(request):return render(request, 'temtest/index2.htm ...

  7. Django 模板继承4.2

    模板继承 模板继承可以减少页面内容的重复定义,实现页面内容的重用 典型应用:网站的头部.尾部是一样的,这些内容可以定义在父模板中,子模板不需要重复定义 block标签:在父模板中预留区域,在子模板中填 ...

  8. Django 模板4.1

    模板介绍 作为Web框架,Django提供了模板,可以很便利的动态生成HTML 模版系统致力于表达外观,而不是程序逻辑 模板的设计实现了业务逻辑(view)与显示内容(template)的分离,一个视 ...

  9. Django 视图和模板1.4

    视图 在django中,视图对WEB请求进行回应 视图接收reqeust对象作为第一个参数,包含了请求的信息 视图就是一个Python函数,被定义在views.py中 #coding:utf-8 fr ...

  10. [JAVA EE] Thymeleaf 高级用法:模板布局,带参数的引用片段,表单验证,常用校验注解

    模板布局 公共部分通常定义为模板布局:如页眉,页脚,公共导航栏.菜单等. 模板布局定义方法 布局页中用 th:fragment 定义模板片段,其他页面用 th:insert 引用片段 例如:foote ...

最新文章

  1. Google刚刚开源了一款用于测试iOS应用的工具:EarlGrey
  2. 三星6.0系统手机最简单激活XPOSED框架的教程
  3. GLSL. 语法基础
  4. iphone开发如何测试?
  5. 开发板通过NTS挂载在PC机中的文件夹
  6. 【搜索引擎Jediael开发笔记1】搜索引擎初步介绍及网络爬虫
  7. wxpython实现简单图书管理系统
  8. datagrid的右键菜单
  9. 华军java_Java SE Runtime Environment 8
  10. 火狐浏览器怎么安装未经认证的附加组件
  11. 【信号检测】基于双稳随机共振微弱信号检测含Matlab源码
  12. win10重装应用商店
  13. 计算机网络故障提出问题,列控系统及其计算机网络的故障诊断与故障容错研究...
  14. SwiftUI 教程之应用中实现 Core Spotlight搜索(教程含源码)
  15. 出租屋租赁系统源码带小程序
  16. 错误-The server encountered an unexpected condition that prevented it from fulfilling the request
  17. widows计算器恢复
  18. 吕 思 伟 ---- 潘 爱 民 :: ATL 介 绍( 三)
  19. Chai.js断言库expect常用API
  20. dota自走棋寻找不到服务器,《DOTA自走棋》服务器不对怎么办 服务器不对解决方法介绍...

热门文章

  1. 动态生成的html click事件,如何动态生成HTML时将jquery附加到click()事件?
  2. 我是如何创建学校免费上网账号上网的
  3. linux清理硬盘工具,linux磁盘清理方法 Linux 下垃圾清理工具 BleachBit
  4. 有哪些让你印象深刻的bug?
  5. ByPass Mode(略过模式或旁路模式)
  6. 轮廓检测论文解读 | 整体嵌套边缘检测HED | CVPR | 2015
  7. 一分钟教程:注册谷歌邮箱
  8. PHP代码审计入门学习过程
  9. Shell脚本 | 考勤统计
  10. linux系统可以在移动硬盘,如何在移动硬盘上装LINUX系统?