这波复习AC机,这道题很久之前就看过了,但是呢以前一看到字符串的题就是烦,现在写好像也不是很难。(途中艰辛的被企鹅和肉丝狂D,最后还是A了 :) 这题就是直接把单词插进树里,然后宽搜完倒着更新就行了。 ...
分类:
其他好文 时间:
2018-01-24 16:52:16
阅读次数:
153
【BZOJ3172】单词(AC自动机) 题面 Description 某人读论文,一篇论文是由许多单词组成。但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次。 Input 第一个一个整数N,表示有多少个单词,接下来N行每行一个单词。每个单词由小写字母组成,N inclu ...
分类:
其他好文 时间:
2018-01-09 16:50:59
阅读次数:
166
【传送门:BZOJ3172】 简要题意: 给出n个字符串,求出每个字符串在这n个字符串中出现的次数 题解: 很容易就想到AC自动机,但是单单是AC自动机还不行 这时就要用AC自动机的延伸——fail树来做(时常膜一膜算法,有益身体健康) fail树这个玩意就是将AC自动机中fail指针当成是一条边, ...
分类:
其他好文 时间:
2017-12-24 15:52:51
阅读次数:
128
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3172 对这$n$个串建立AC自动机,求每个串的出现次数。 我们在建立时对每一个经过的节点sum++,然后在fail树上从叶子节点不断向上更新,因为父亲节点代表的是孩子节点的一个后缀,所以孩子 ...
分类:
其他好文 时间:
2017-10-07 22:02:51
阅读次数:
165
【传送门:BZOJ3172】 简要题意: 给出n个单词,你可以理解为将这些单词变成一个个段落,然后求出每个单词在所有段落中出现的次数 题解: 刚开始不是很懂题目,结果发现将所有单词看成一篇文章,每个单词看成一个段落就懂了 由于某种unbelievable的原因,我刚好做了AC自动机的专题训练,看到这 ...
分类:
其他好文 时间:
2017-10-05 12:17:35
阅读次数:
130
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3172 【题解】 考虑建出AC自动机,那么fail树上每个点的父亲为fail,父亲->儿子为后缀关系(父亲是儿子后缀) 那么走到父亲肯定走到了儿子,直接统计即可。 # include <queu ...
分类:
其他好文 时间:
2017-07-17 23:52:03
阅读次数:
255
3172: [Tjoi2013]单词 Description 某人读论文,一篇论文是由许多单词组成。但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次。 某人读论文,一篇论文是由许多单词组成。但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次。 ...
分类:
其他好文 时间:
2017-07-02 20:25:55
阅读次数:
176
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int size=26,M=1000005; char c[M]; int w[255],n; struct node{ int sum ...
分类:
其他好文 时间:
2017-05-23 18:54:24
阅读次数:
161
Description 某人读论文,一篇论文是由许多单词组成。但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次。 某人读论文,一篇论文是由许多单词组成。但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次。 Input 第一个一个整数N,表示有 ...
分类:
其他好文 时间:
2017-04-13 10:12:11
阅读次数:
250
【bzoj2434】: [Noi2011]阿狸的打字机 x串在y串上的匹配次数就是y在自动机所有节点上能够通过fail走到x最后一个节点的个数 (就是y串任意一个前缀的后缀能匹配到x的个数)和【bzoj3172】: [Tjoi2013]单词差不多 把fail指针反向就是x的子树的和 用dfs序+BI ...
分类:
其他好文 时间:
2017-04-01 21:16:28
阅读次数:
313