题意:给定三个操作:1、在当前字符串的末尾添加一个字符c 2、在当前字符串的末尾删除一个字符 3、记录当前字符串并对其标号。再给出N组询问,每组询问需回答第x个字符串在第y个字符串中出现的次数 题解: 首先按照如下规则建Trie,设当前节点为t,第i个字符串的结尾在Trie中的位置为mark[i]: ...
分类:
编程语言 时间:
2017-02-27 22:57:01
阅读次数:
238
Description 阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机。打字机上只有28个按键,分别印有26个小写英文字母和'B'、'P'两个字母。经阿狸研究发现,这个打字机是这样工作的:l 输入小写字母,打字机的一个凹槽中会加入这个字母(这个字母加在凹槽的最后)。l 按一下印有'B'的 ...
分类:
其他好文 时间:
2016-12-24 02:20:45
阅读次数:
202
传送门 AC自动机理解的还是不够透彻,这道题没有想出来QAQ 这个如果真的不会玩用KMP打暴力很好想到。好吧其实不应该向kmp方面想,这个多字符串匹配显然是AC自动机。给出的字符串就是给你模拟了建立Trie树的过程。然后考虑根据每个点的fail指针建立fail树。 问$str_i$在$str_j$里 ...
分类:
其他好文 时间:
2016-10-20 15:33:14
阅读次数:
243
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=23083 Description 阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机。打字机上只有28个按键,分别印有26个小写英文字母和'B'、'P'两个字母。经阿狸研 ...
分类:
其他好文 时间:
2016-07-12 11:54:53
阅读次数:
280
Description 阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机。打字机上只有28个按键,分别印有26个小写英文字母和'B'、'P'两个字母。经阿狸研究发现,这个打字机是这样工作的:l 输入小写字母,打字机的一个凹槽中会加入这个字母(这个字母加在凹槽的最后)。l 按一下印有'B'的 ...
分类:
编程语言 时间:
2016-06-16 17:37:37
阅读次数:
248
[BZOJ2434][Noi2011]阿狸的打字机 试题描述 阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机。打字机上只有28个按键,分别印有26个小写英文字母和'B'、'P'两个字母。 经阿狸研究发现,这个打字机是这样工作的: l 输入小写字母,打字机的一个凹槽中会加入这个字母(这个字 ...
分类:
其他好文 时间:
2016-04-30 15:33:45
阅读次数:
157
阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机。打字机上只有28个按键,分别印有26个小写英文字母和'B'、'P'两个字母。经阿狸研究发现,这个打字机是这样工作的:l 输入小写字母,打字机的一个凹槽中会加入这个字母(这个字母加在凹槽的最后)。l 按一下印有'B'的按键,打字机凹槽中最后一
分类:
其他好文 时间:
2016-03-16 09:35:31
阅读次数:
257
这题真是太神了,好多实用的技巧。。首先肯定是要先把每个要输出的串当模式串把自动机给建出来的,如果一个一个串复制出来再一个个插入显然非常慢。。。我们用在自动机上插入模式串的方法来建,初始时在0,新加一个字符就想下爬(或者新建),维护一个父亲指针,删除的时候就可以爬上去,这样就可以O(n)建出来了。。
再考虑询问的问题,每次把串拿出来再放进自动机跑一遍显然太慢。。这里需要用到一个叫做fail树的东西...
分类:
编程语言 时间:
2015-04-20 09:36:29
阅读次数:
455
题意:
n,m
n个串
m个串
样例里面倒数第二行的you应该扔到下一行。
问m个串每个在前n个串中的几个出现过。
题解:
首先这道题跟
【BZOJ2754】【SCOI2012】喵星球上的点名
是一样的,只不过更卡时一点,或者说喵的数据太弱。
这道题虽然是后缀自动机,但是大体思路和
【BZOJ2434】【NOI2011】阿狸的打字机
AC自动机...
分类:
其他好文 时间:
2015-01-22 11:11:59
阅读次数:
305