随笔分类 -  字符串

摘要:bzoj1090[SCOI2003]字符串折叠 题意: 折叠的定义如下:1. 一个字符串可以看成它自身的折叠。记作S。2. X(S)是X(X>1)个S连接在一起的串的折叠。记作X(S)。注意括号可以嵌套。给出字符串,求折叠后字符串的最短长度。 字符串长度≤100。 题解: 区间dp。f[i][j]= 阅读全文
posted @ 2016-11-11 19:23 YuanZiming 阅读(411) 评论(0) 推荐(0)
摘要:bzoj1717[Usaco2006 Dec]Milk Patterns 产奶的模式 题意: John记录了n天的牛奶质量值。他想知道最长的出现了至少k次的模式(即一个连续子串)的长度。n≤20000。 题解: 求一个总哈希值,二分模式长度,枚举每个模式开始端点,获得它的哈希值,然后排序比较有没有至 阅读全文
posted @ 2016-11-07 14:22 YuanZiming 阅读(206) 评论(0) 推荐(0)
摘要:bzoj1640[Usaco2007 Nov]Best Cow Line 队列变换 bzoj1692[Usaco2007 Dec]队列变换 题意: 有一个奶牛队列。每次可以在原来队列的首端或是尾端牵出一头奶牛,把她安排到新队列的尾部,然后对剩余的奶牛队列重复以上的操作,直到所有奶牛都被插到了新的队列 阅读全文
posted @ 2016-11-04 21:59 YuanZiming 阅读(230) 评论(0) 推荐(0)
摘要:bzoj3670[Noi2014]动物园 题意: 对于字符串S的前i个字符构成的子串,既是它的后缀同时又是它的前缀,并且该后缀与该前缀不重叠,将这种字符串的数量记作num[i]。给出字符串S求所有num[i]+1的乘积模1000000007。字符串长度≤1000000 题解: 先求一遍fail函数, 阅读全文
posted @ 2016-08-25 22:15 YuanZiming 阅读(307) 评论(0) 推荐(0)
摘要:bzoj3555[Ctsc2014]企鹅QQ 题意: 判定有多少对字符串只有一个字母不同。字符串个数≤30000,长度≤300。 题解: 求出第i个字符串前j个字符的哈希值hs[i][j],然后枚举去掉所有字符串的第几位,将去掉后的字符串的哈希值用hs数组直接算出,排序后检查有没有相同的计入答案。 阅读全文
posted @ 2016-08-21 14:15 YuanZiming 阅读(269) 评论(0) 推荐(0)
摘要:bzoj2160拉拉队排练 题意: 给一个字符串,求最长的k个回文子串(此处回文子串长度必须为奇数)长度的乘积。字符串长度≤1000000 题解: 先用manacher预处理出第i个字符为中心的最长回文子串一端长度p[i],然后cnt[1]++,cnt[2*p[i]+1]--,最后cnt[i]+=c 阅读全文
posted @ 2016-08-17 21:49 YuanZiming 阅读(473) 评论(0) 推荐(0)
摘要:bzoj1212[HNOI2004]L语言 题意: 给定一个字典D,你的程序需要判断若干段文章在字典D下是否能够被理解。 并给出其在字典D下能够被理解的最长前缀的位置。理解定义为这段文章可以拆成字典里的单词。单词数≤10且长度≤10,文章数≤20且长度≤1M。 题解: 在trie上跑dp,dp[i] 阅读全文
posted @ 2016-08-17 14:32 YuanZiming 阅读(264) 评论(0) 推荐(0)
摘要:bzoj3620似乎在梦中见过的样子 题意: 给出一个字符串,要求求出形如A+B+A的子串数量,且lenA≥k,lenB≥1。字符串长度≤15000,k≤100,所以字符长度为小写字母。 题解: 第一次写kmp的题QAQ~这题利用的是fail函数的性质:若字符串s在位置x的fail函数f[x]不为0 阅读全文
posted @ 2016-08-16 22:52 YuanZiming 阅读(680) 评论(0) 推荐(0)
摘要:bzoj2251[2010Beijing Wc]外星联络 题意: 找一个01串中出现次数大于1的字串。01串长度≤3000 题解: 有个结论:一个串的所有后缀的所有前缀对应了这个串的字串。所以将这个串的所有后缀插入trie,累计经过trie上每个节点的经过次数,找到大于1的输出即可。 代码: 1 # 阅读全文
posted @ 2016-08-16 21:41 YuanZiming 阅读(172) 评论(0) 推荐(0)
摘要:bzoj1030[JSOI2007]文本生成器 题意: 给出一个字典和一个长度,要求有多少个这个长度的字符串里含有子串为字典里的单词。字符串和字典里的字符都为大写字母。单词数≤60,字符串及单词长度≤100。 题解: 在AC自动机上跑dp,求不含字典单词的个数,再用总个数减。f[i][j]表示当前处 阅读全文
posted @ 2016-07-24 16:37 YuanZiming 阅读(203) 评论(0) 推荐(0)
摘要:bzoj3172[Tjoi2013]单词 题意: 某人读论文,一篇论文是由许多单词组成。但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次。注意论文中单词之间是有分隔的。单词数≤200,长度≤1000000 题解: 先将每个单词插入trie,经过的节点的sum[i]++, 阅读全文
posted @ 2016-07-24 16:31 YuanZiming 阅读(491) 评论(0) 推荐(0)
摘要:bzoj1031[JSOI2007]字符加密 题意: 一种加密办法是把需要加密的信息排成一圈,显然,它们有很多种不同的读法。把它们按照字符串的大小排序,读出最后一列字符,就是加密后的字符串。给出原字符串,求加密后的字符串。 题解: 将原字符串重复后接在后面,然后求后缀数组,注意求完后要取那些长度大于 阅读全文
posted @ 2016-07-09 22:35 YuanZiming 阅读(233) 评论(0) 推荐(0)