https://www.lydsy.com/JudgeOnline/problem.php?id=3172

构建AC自动机

在fail树上,点i的子树大小 表示trie树上根节点到i构成的单词 是 多少个(子)串的子串

#include<queue>
#include<cstdio>
#include<cstring>using namespace std;#define N 2000001using namespace std;int pos[201];int tr[N][26],id=1;
int f[N],ans[N];char s[1000001];queue<int>q;int d[N],cnt;void insert(int &pos)
{int now=1,len=strlen(s);int x;for(int i=0;i<len;++i){x=s[i]-'a';if(!tr[now][x]) tr[now][x]=++id;now=tr[now][x];ans[now]++;}pos=now;
}void get_fail()
{for(int i=0;i<26;++i) tr[0][i]=1;q.push(1);int now,j;while(!q.empty()){now=q.front();d[++cnt]=now;q.pop();for(int i=0;i<26;++i) if(!tr[now][i]) tr[now][i]=tr[f[now]][i];else{q.push(tr[now][i]);j=f[now];f[tr[now][i]]=tr[j][i];}}
}int main()
{int n;scanf("%d",&n);for(int i=1;i<=n;++i){scanf("%s",s);insert(pos[i]);}get_fail();for(int i=cnt;i;--i) ans[f[d[i]]]+=ans[d[i]];for(int i=1;i<=n;++i) printf("%d\n",ans[pos[i]]);
}

转载于:https://www.cnblogs.com/TheRoadToTheGold/p/8977771.html

bzoj千题计划315:bzoj3172: [Tjoi2013]单词(AC自动机)相关推荐

  1. BZOJ3172 TJOI2013 单词 AC自动机

    题意:给定N个字符串,设S为N个字符串首尾相连组成的字符串,查询每个字符串在S中出现的次数. 题解: 首先我们在构造Trie的时候,将构造过程中经过的节点的cnt全部++,此时cnt中记录该模式串被多 ...

  2. BZOJ 2151 种树(可反悔贪心,链表)【BZOJ千题计划】就图一乐

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/2151 是 hydro 的 BZOJ ...

  3. BZOJ 1799 [Ahoi2009] self 同类分布(数位DP)【BZOJ千题计划(quexin】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/1799(样例时限设置有问题,应该为 2 ...

  4. bzoj 3172: [Tjoi2013]单词 AC自动机

    3172: [Tjoi2013]单词 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/pr ...

  5. BZOJ 2150. 部落战争(最小路径覆盖问题)【BZOJ千题计划】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 刷题就图一乐 题目链接 https://hydro.ac/d/bzoj/p/2150 是 hydro ...

  6. bzoj千题计划143:bzoj1935: [Shoi2007]Tree 园丁的烦恼

    http://www.lydsy.com/JudgeOnline/problem.php?id=1935 二维偏序问题 排序x,离散化树状数组维护y #include<cstdio> #i ...

  7. bzoj千题计划219:bzoj1568: [JSOI2008]Blue Mary开公司

    http://www.lydsy.com/JudgeOnline/problem.php?id=1568 写多了就觉着水了... #include<cstdio> #include< ...

  8. bzoj千题计划207:bzoj1879: [Sdoi2009]Bill的挑战

    http://www.lydsy.com/JudgeOnline/problem.php?id=1879 f[i][j] 表示匹配了i个字符,匹配字符串的状态为j的方案数 枚举下一个字符是什么 计算加 ...

  9. bzoj千题计划203:bzoj3994: [SDOI2015]约数个数和

    http://www.lydsy.com/JudgeOnline/problem.php?id=3994 设d(x)为x的约数个数,给定N.M,求 用到的一个结论: 证明: 枚举n的约数i,枚举m的约 ...

  10. bzoj千题计划280:bzoj4592: [Shoi2015]脑洞治疗仪

    http://www.lydsy.com/JudgeOnline/problem.php?id=4592 注意操作1 先挖再补,就是补的范围可以包含挖的范围 SHOI2015 的题 略水啊(逃) #i ...

最新文章

  1. python3入门与进阶笔记_16_变量进阶 — 黑马程序员《Python入门教程完整版》笔记...
  2. msf payload php,Metasploit(四)--Msfpayload命令
  3. sql server代理无法启动_谁说前端不需要懂Nginx反向代理与负载均衡
  4. Spring MVC数据验证简介
  5. python与财务工作总结_Python小结1
  6. 主链增幅最高飚至 152%,主流币却惊现回落;以太坊发币速度持续放缓
  7. 在WPF中自定义你的绘制(二)
  8. c++string类寻找子串
  9. jade linux 安装教程,ROS-Jade版在UbuntuKylin15.04上的安装
  10. 批量更改文件的后缀名
  11. ThreadPoolExecutor源码分析
  12. 爱的魔力转圈圈-流水灯电路原理详解-PCB系列教程4-1
  13. keil5的暗色配色方案
  14. 万能命令:快捷直达你想要的在线工具
  15. 非著名不专业Teambition网盘评测
  16. 石墨笔记,为知笔记和Effie哪个更适合商业机构提案人员?
  17. 计算机专业推山西新华电脑学校,青春启航,乘风破浪|山西新华电脑学校2021届毕业典礼完美落幕...
  18. AutoCAD--通用图元组码 (DXF)、索引颜色代码等常量
  19. ERD Online 4.0.4 元数据在线建模(免费、私有部署)
  20. 学习HTML5开发RPG游戏第五步游戏界面设计一

热门文章

  1. POJ-1251-Jungle Roads
  2. lvm 的用法和小案例
  3. 成都市交委与摩拜科技联手 助推智慧城市建设
  4. Vquery PHP 简单爬虫类
  5. CentOS 7部署Kafka和Kafka集群
  6. 安装ESXI 5.5卡在LSI_MR3.V00解决方案
  7. 分享MYSQL中的各种高可用技术
  8. 在Oracle数据库启动时提示没有权限 ora-01031:insufficient privileges
  9. Intent的一些简单用法
  10. 更改swing应用程序标题栏默认图标