我只是想记一下最近写的题目而已喵~题解什么的才懒得写呢~[poj 1625]Censored!这题注意一个地方,就是输入数据中可能有ASCII 大于 128 的情况,也就是说用 char 读入时,这个字符的值为负数,真是 RE 了好久……可以像我一样 map 党,你也可以把每个 s[i] 都加上 1...
分类:
其他好文 时间:
2014-08-12 13:03:14
阅读次数:
259
好久没刷 poj 了,今天练习 AC 自动机时去水了一发喵~在 poj 上 A 题的感觉并没有 BZOJ 上那么愉悦,准确的说是痛不欲生真是应了那句老话,你再慢也有比你慢的,你再快也有比你快的……跪求那些 0ms 的代码啊,还有那么多人都只跑了 32ms 啊!!果然还是我太弱了吗?一定是我还太弱了 ...
分类:
其他好文 时间:
2014-08-11 20:53:52
阅读次数:
251
http://poj.org/problem?id=3690
UVA还有一道也是这样的题,LRJ给的算法是AC自动机----我还没写过,今天用HASH搞了这道题
思路很清晰,但是处理起来还因为HASH函数写混WA了几次。。。
文本矩阵n*m T个匹配矩阵p*q
思路:
1、把每一行处理出长为q的hash值
2、对于1中得到的p个哈希值在算一次哈希,这样就把一个矩阵用一个hash值...
分类:
其他好文 时间:
2014-08-11 17:49:02
阅读次数:
205
AC自动机
1。指针p。指向当前已匹配的字符。若p指向root,则当前匹配的字符序列为空
2。指针p->fail。指向与p有相同字符的节点,即p的失配指针。
3。指针temp。
1.构造Trie
2.构造失败指针:
设该节点的字母为c,沿着它的父亲的失败指针走,直到某个节点的儿子的字母存在c,那么就将这个节 ...
分类:
其他好文 时间:
2014-08-10 13:06:50
阅读次数:
184
?Problem A SPOJ SUB_PROB AC自动机?题意: 给定一个长为M(M≤100000 )的文本串,和N(N≤1000)个长度不超过2000的模式串,问每个模式串是否在文本串中出现过??几乎和周一课件上的第一个例题一模一样。。?把文本串丢到AC自动机里面去跑。?注意:?1.可能有两个...
分类:
其他好文 时间:
2014-08-09 13:11:07
阅读次数:
381
本题是在text里面查找key word的增强版,因为这里有多个text。
那么就不可以简单把Trie的叶子标志记录修改成-1进行加速了,可以使用其他技术,我直接使用个vis数组记录已经访问过的节点,达到加速效果,速度还算挺快的。
不过看discuss里面有人直接使用Trie,做出了140ms的速度,而且他的程序严格来说并不正确,可见本题的数据很水啊。Trie的时间效率肯定比AC自动机低,但是...
分类:
其他好文 时间:
2014-08-07 23:20:15
阅读次数:
295
其实本题比HDU的病毒侵袭1还简单,不过有一个陷阱卡到我了:就是搜索text的时候,当遇到的字母不是大写字母的时候,那么就要重新从根节点开始搜索,否则就会答案错误。
那么一点陷阱,居然没想到啊。
教训啊:看来对不太平常的地方,需要更加深入的思考,才能发现其中的陷阱,否则就WA了。
#include
#include
#include
using std::queue;
con...
分类:
其他好文 时间:
2014-08-07 23:06:35
阅读次数:
364
AC自动机的灵活运用,本题关键是灵活二字。
因为数据不是很大,时间要求也不高的缘故,所以本题有人使用暴力法也过了,有人使用Trie也过了。
当然有人使用AC自动机没AC的,在讨论区里喊AC自动机超时的,那是因为不会灵活运用,或者是硬套模板的,AC了速度也不会快。
给出本人的算法思路:
1 把需要查找的关键字建立Trie, 然后构造AC自动机
2 查找的时候分八个方向查找,比如棋盘...
分类:
其他好文 时间:
2014-08-07 15:41:50
阅读次数:
314
单词统计的题目,给出一些单词,统计有多少单词在一个文本中出现,最经典的入门题了。
AC自动机的基础:
1 Trie, 以这个数据结构为基础的,不过增加一个fail指针和构造fail的函数
2 KMP,不是直接运用KMP,而是需要KMP的思想,KMP思想都没有的话,理解这个算法会更加吃力的。
注意本题的单词会有重复出现的,一个单词只能统计一次。
搜索了一下网上的题解,发现好多代码都...
分类:
其他好文 时间:
2014-08-07 13:20:40
阅读次数:
300