字符串
文章平均质量分 69
asdfgh0308
这个作者很懒,什么都没留下…
展开
-
zoj3296 Connecting the Segments,后缀数组、dp
zoj3296 Connecting the Segments,后缀数组、dp又是后缀数组。。嗯求一个串最少能由几个回文串拼成。这里的拼接可以相互覆盖。其实思路不难。先求出串中有哪些是回文串,然后就是经典的DP问题了,大家都应该懂的。不过回文串最差可能有O(len^2)个。思考一下,有一个重要的结论,如果一个回文串被另一个包含,那么这一个回文串是没有意义的,因为原创 2013-06-11 17:22:16 · 672 阅读 · 0 评论 -
hdu4601 Letter Tree,trie,bfs,dfs,二分,rmq
真的是很有意思的题。因为有重复的边,我想了很多贪心搞法都错了。最后还是看了标解。trie+bfs+dfs+二分+rmq。OMG最重要的还是几点吧:1.通过在trie上dfs/bfs可以知道某个节点的hash值大小,因为有mod,直接比较值是没法比较大小的。2.bfs可以将树上同一深度的点放在一个连续区间,而dfs可以求出子树区间,结合就能找到子树中某个深度的最值。注原创 2014-11-01 21:05:24 · 523 阅读 · 0 评论 -
hdu4468 Spy,KMP
给一个串s,找最小的一个串t,使得原串是这个最小串的前缀+前缀+..(很多很多的前缀)+这个最小串构成。很难思考的题目。可以想到一种思路:能用短的匹配,就不用长的。利用KMP,当不能匹配的时候,就从上一个匹配完成的位置开始把剩下的那段加到t中。为什么要找上次匹配完成的位置last呢?因为这样做能保证t是一个最短的能满足构成s[0..i]的串。由于最后需要一个原创 2014-11-13 15:21:54 · 627 阅读 · 0 评论 -
hdu4641 K-string,后缀自动机,并查集
做完这题还是有点小高兴的。。网上题解都是O(n^2)水的。简单介绍一下我想滴比标程还短还快的O(n+T(并查集))的做法。原创 2014-11-10 02:02:56 · 2100 阅读 · 0 评论 -
BNUOJ 34490 Justice String,字符串哈希,二分
BNUOJ 34490 Justice String这是今年北京邀请赛的一个题目。问串1是否有与串2“匹配”的子串。这里“匹配”是可以有最多两个字符不同的匹配。“用两秒钟构思”,这不是后缀数组水题么。然后我就水啊水,用的DC3,时限2秒,n=200000,nlogn的算法。尼玛,什么破OJ啊,这样都被卡。好吧。穷则思变。记得后缀自动机陈立杰的PPT里说的那个原创 2014-08-26 14:57:48 · 793 阅读 · 0 评论 -
poj3974 Palindrome,回文串,Manacher
最近在暴搞字符串。poj3974 Palindrome。数据有点变态的大,10^6,dc3MLE,rmqTLE。所以Manacher算法O(n)空间和时间求解回文串长还是很有用的嘛。贴个模板。来自交大书,不用预处理加什么‘#’的,比较方便。记得len[]要开两倍字符串长。原创 2014-08-15 13:27:11 · 576 阅读 · 0 评论 -
hdu5008 Boring String Problem,2014西安网络赛B题,后缀数组,RMQ
hdu5008 Boring String Problem295分钟惊险ac。问一个串的不重复连续子串中,字典序第k小的子串是哪个。如果存在多个同样的子串,要求输出l最小的那个。显然,通过后缀数组可以求出所有的不同子串数。对于某个点l,后缀长度减去height的值就是该点为左端点所能贡献的不同子串数量。对于后缀排名靠前的点,以这个点为起始的所有子串都会比排名靠后原创 2014-09-14 20:17:00 · 827 阅读 · 0 评论 -
poj1625 Censored! AC自动机DP、高精度
poj1625 Censored! AC自动机DP、高精度这是AC自动机的经典题目了吧。嗯,难度不大,就是代码长而已。。poj的数据一如既往地奇葩,会有大于128的字符,读入变负,需要处理一下。结果最大是50^50,大概是10^85,高精度的长度可以计算一下。#include#include#includeusing namespace std;#def原创 2013-06-13 21:14:14 · 601 阅读 · 0 评论 -
ural1297 Palindrome,hdu 3068 最长回文,Manacher
在昨天多校的凸包被卡之后,我已经发现用poj测模板是作死的最好方式。所以又水了两道。ural 1297. Palindrome这里要求输出回文串。理解一下模板len[i]的含义。当i是奇数,len[i]表示的是i/2位置为中心的奇数长度回文串的回文串半长((回文串长度+1)/2);当i是偶数,len[i]表示的是i/2、i/2+1为中心的偶数长度回文串的回文串半长。原创 2014-08-15 14:35:58 · 538 阅读 · 0 评论 -
hdu4057 Rescue the Rabbit,AC自动机,状态压缩dp
hdu4057 Rescue the Rabbit,AC自动机,状态压缩dp题意:给n(一个串只能被计算一次权值。将这些串建trie树,那么树节点不会超过1000个。然后状态压缩dp,状态有2^10=1024种,节点数1000个,每次转移有四种,共有100次转移,转移用AC自动机优化就是O(1)。因此复杂度就是O(1000*1024*100*4)。实际会更小一些,因为树原创 2014-10-15 22:41:07 · 537 阅读 · 0 评论