数据结构:AC自动机
数据结构:AC自动机
LSD20164388
如果你过几天就忘了,那么你并没有真正的掌握。
展开
-
Educational Codeforces Round 97 (Rated for Div. 2) G. Death DBMS (AC自动机)
传送门G. Death DBMStime limit per test2 secondsmemory limit per test512 megabytesinputstandard inputoutputstandard outputFor the simplicity, let’s say that the “Death Note” is a notebook that kills a person when their name is written in it.It’s easy to原创 2020-11-10 15:05:25 · 295 阅读 · 0 评论 -
hdu 3065 病毒侵袭持续中(AC自动机基本应用)
题意:给你多个不重复的单词和一个文本串,让你求文本串中出现了哪些单词,各出现了多少次。(没出现的不用输出)思路:AC自动机基本应用。直接建立AC自动机,节点val[u]表示u节点的单词编号。注意:没有重复的单词。所以找到一个单词时直接cnt[val[u]]++即可,u为该单词的尾节点编号。最后按顺序把出现了的单词输出。若本题中有重复的模板单词,则需要建立一个map映射,将所有单词映射到它最原创 2017-12-12 16:04:31 · 272 阅读 · 0 评论 -
zoj 3228 Searching the String(AC自动机基本应用)
题意:给你一个文本串,再给你若干个单词(模板),分为两种,一种是可重复的,另一种是不可能重复的,问你每个单词(模板)在文本中可以找到多少个。思路:AC自动机基本应用。建立AC自动机,val[u]=1表示该节点为单词尾字母节点,即包含了该单词。至于两种情况,例如文本串为ababa,对于单词aba,若不可重复,则只能找到1个,如果可重复,则可以找到2个。重复的状况就不需要再处理,但是不重复的状态需原创 2017-12-12 16:28:43 · 270 阅读 · 0 评论 -
uva 1449 Dominating Patterns(AC自动机基本应用)
做的第一道AC自动机专题的题目。。。题意:给你一堆单词和一个文本串,求出文本串中出现次数最多的单词。思路:AC自动机。这道题是AC自动机的基本应用。建立一个AC自动机,用val[u]=1表示节点u处为一个单词的尾节点,否则val[u]=0。然后用文本串去匹配,每经过一个val[u]=1的点就把计数数组cnt[i]++;(i为第i个单词),最后找cnt中值最大的,然后再遍历一遍cnt数组,值原创 2017-12-06 22:58:51 · 266 阅读 · 0 评论 -
牛客网暑期ACM多校训练营(第九场) F Typing practice(AC自动机+思维)
链接:https://www.nowcoder.com/acm/contest/147/F来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述Niuniu is practicing typing.Given n words, Niuniu want to inpu...原创 2018-08-17 15:56:01 · 848 阅读 · 0 评论 -
2019年3月6日训练日记
莫队&AC自动机:1、AC自动机,主要应用有以下三类:模式匹配、字符串统计、字符串构造(+DP)。以下的题目统计摘自大佬:https://blog.csdn.net/mobius_strip/article/details/22549517a.模式匹配:这类问题一般都是统计目标串中模式串的个数。下面是oj中的题目编号,和说明:hdu1686 ...原创 2019-03-06 21:28:51 · 295 阅读 · 0 评论