题目大意及后缀数组做法见 http://blog.csdn.net/popoqqq/article/details/41042473
原来正解是fail树……难怪后缀数组被卡成这样
首先我们将给出的n个串构建AC自动机
朴素的做法是对于每个串将这个串每个节点沿着fail指针扫一遍,将路径上的所有点的cnt++
但是这样做会TLE
我们不妨反向思考 fail指针反向后是一棵树 沿着fail...
分类:
其他好文 时间:
2014-12-08 21:29:02
阅读次数:
203
就是裸的AC自动机?、、、于是蒟蒻顺便又复习(重新学习)了一下。。找到了个bfs版本的AC自动机,在此Orz BLADEVIL,但是讨厌用链表的说! 1 /************************************************************** 2 Pro...
分类:
其他好文 时间:
2014-11-30 00:11:58
阅读次数:
265
题目大意:给定一个n个单词的文章,求每个单词在文章中的出现次数
文章长度
首先将所有单词用空格连接成一个字符串,记录每个单词的起始位置和长度
然后求后缀数组,对于每个单词后缀数组中一定有连续一段后缀以这个单词开头,我们通过一开始记录的起始位置找到这个单词的后缀,然后左右端点二分答案,满足左右端点之间的后缀与原单词的LCP都当与等于原单词长度即可
时间复杂度O(nlogn)
#includ...
分类:
编程语言 时间:
2014-11-12 15:05:52
阅读次数:
823
题目大意:给定一个n*n的网格图,要在0的位置上放置一些攻击装置,其中一个攻击装置的攻击范围是周围8个“日”字形区域,要求不能互相攻击,求最多放置多少个攻击装置
每两个能互相攻击且能放置的点连一条双向边,然后跑二分图最大点独立集即可
4W个点n^2居然没TLE 是数据太弱还是匈牙利算法太强了?
#include
#include
#include
#include
#define M 210...
分类:
其他好文 时间:
2014-11-07 14:56:30
阅读次数:
126
3172: [Tjoi2013]单词Time Limit:10 SecMemory Limit:512 MBSubmit:1111Solved:513[Submit][Status]Description某人读论文,一篇论文是由许多单词组成。但他发现一个单词会在论文中出现很多次,现在想知道每个单词分...
分类:
其他好文 时间:
2014-08-29 12:44:07
阅读次数:
256