题意:
n,m
n个串
m个串
样例里面倒数第二行的you应该扔到下一行。
问m个串每个在前n个串中的几个出现过。
题解:
首先这道题跟
【BZOJ2754】【SCOI2012】喵星球上的点名
是一样的,只不过更卡时一点,或者说喵的数据太弱。
这道题虽然是后缀自动机,但是大体思路和
【BZOJ2434】【NOI2011】阿狸的打字机
AC自动机...
分类:
其他好文 时间:
2015-01-22 11:11:59
阅读次数:
305
这是一道神题。
首先我们需要建立AC自动机,然后再建个Fail树,之后发现
如果询问a串在b串中出现了几次,那么只需要看b串在AC自动机上所有的节点中有多少个节点,在a串的结束节点在Fail树上的子树中就可以了。
然后这样做就很可以了,但是仍然不能AC,
这时我们只需要按照Fail树的dfs序建立数据结构(我写了树状数组)进行区间查询就好了。
这时对于以上的b串,...
分类:
其他好文 时间:
2015-01-19 17:15:24
阅读次数:
128
字符串算法有哪些呢???Tire,KM,KMP,AC自动机,后缀数组,后缀自动机,RK,Shift-And/Or,Manacher.....?这么这么多啊!!!也只能慢慢学了。。。接下来的题是按我做题顺序来排的,难度的话我就不理了(`?ω?´)BZOJ 2434: [NOI2011]阿狸的打字机第一...
分类:
其他好文 时间:
2014-12-28 20:42:24
阅读次数:
197
题目大意:有一种打字机上有28个字母,分别是26个小写字母和BP,其中B代表退格,P代表换行,每一行就是一个字符串。现在给这些字符串标号,并询问x串在y串中出现过几次。
思路:这算是NOI史上最难的字符串的题了吧(动物园)。
首先按照题意不难建一个AC自动机出来,按照正常的思路,对于每一个询问都需要在AC自动机上暴力的查找。但这样时间会十分好看。
于是我们想,fail指针构成的一定是...
分类:
其他好文 时间:
2014-12-10 16:24:22
阅读次数:
249
题目大意:初始字串为空,首先给定一系列操作序列,有三种操作:
1.在结尾加一个字符
2.在结尾删除一个字符
3.打印当前字串
然后多次询问第x个打印的字串在第y个打印的字串中出现了几次
卡了很久……到底还是对AC自动机了解不是很深啊QAQ
fail树不是很难想 至少在用AC自动机切掉3172之后不是很难想……
首先构建AC自动机 注意由于这个字串的特殊构造 我们不必每打印一个字符串再...
分类:
编程语言 时间:
2014-11-26 19:08:19
阅读次数:
290
Description阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机。打字机上只有28个按键,分别印有26个小写英文字母和'B'、'P'两个字母。经阿狸研究发现,这个打字机是这样工作的:l 输入小写字母,打字机的一个凹槽中会加入这个字母(这个字母加在凹槽的最后)。l 按一下印有'B'的按...
分类:
其他好文 时间:
2014-06-27 12:26:51
阅读次数:
215
/**************************************************************
Problem: 2434 User: wangyucheng Language: C++ Result: Accepted Time:496...
分类:
其他好文 时间:
2014-05-10 03:06:57
阅读次数:
334