
----------字符串----------
文章平均质量分 66
IcePrincess_1968
这个作者很懒,什么都没留下…
展开
-
Codeforces #1016B: Segment Occurences 题解
DescriptionYou are given two strings s and t, both consisting only of lowercase Latin letters.The substring s[l..r] is the string which is obtained by taking characters sl,sl+1,…,sr without changing...原创 2018-08-05 17:46:24 · 479 阅读 · 0 评论 -
SPOJ SUBLEX: Lexicographical Substring Search 题解
DescriptionLittle Daniel loves to play with strings! He always finds different ways to have fun with strings! Knowing that, his friend Kinan decided to test his skills so he gave him a string S and ...原创 2018-07-23 11:26:04 · 298 阅读 · 0 评论 -
Codeforces #985F: Isomorphic Strings 题解
感觉虽然是edu round的倒数第二题但还蛮简单的 我们分析那个同构的定义,可以理解为“该一样的字符要一样,该不一样的字符要不一样”,那么对于每一种字符我们想一种办法来表示他在子串中所有的出现位置(像一张有黑点的纸条),然后看看两个串能不能配对就好 把一个01串转换成一个数,我刚开始想的是高精度用2n2n2^n表示,然而复杂度是炸的,然后我发现自己蠢了,用字符串哈希就可以了 为了保险我写了...原创 2018-05-22 14:39:29 · 522 阅读 · 1 评论 -
Codeforces #963D: Frequency and String 题解
看到∑len≤100000∑len≤100000\sum len\leq 100000,考虑根号暴力 考虑所有的匹配串,分成长度大于n−−√n\sqrt{n}和小于n−−√n\sqrt{n}的两类对于第一类,他的较好的性质是串的个数小于n−−√n\sqrt n,我们考虑对这些串建立AC自动机,然后在用母串跑匹配的时候,我们不沿着fail边向上更新标记(因为深度可能很大会超时)我们只在母串...原创 2018-04-27 08:57:36 · 409 阅读 · 1 评论 -
UOJ #35: 后缀排序 题解
后缀数组+高度数组裸题 直接上了一个最裸的O(nlog2n)O(nlog2n)O(nlog^{2}n)的板子#include <cstdio>#include <iostream>#include <cstring>#include <string>#include <cstdlib>#include <util...原创 2018-04-05 22:02:11 · 225 阅读 · 0 评论 -
ZOJ4010: Neighboring Characters 题解
首先可以O(n)O(n)O(n)的预处理出所有的不合法位置 然后我的第一想法是用我的长度去包含所有的不合法位置,可能会有若干种包含方法,然后发现只要满足一个什么什么样的字符串哈希值不同就行 但这样的考虑忽略了一个特性:我的覆盖是可以从尾巴出发,穿越到头再覆盖的,这个比较难处理 不妨换一个角度:我们预处理出了若干的不合法位置,把原串分割成了若干个合法的小串,我们最后剩下的合法字符串一定是某一个...原创 2018-04-03 21:09:03 · 267 阅读 · 0 评论 -
BZOJ1031: 字符加密 题解
后缀数组裸题(写这题是练板子的)枚举长度的k一定要开成全局啊#include <cstdio>#include <iostream>#include <cstring>#include <string>#include <cstdlib>#include <utility>#include <cctype&g原创 2018-03-20 21:40:45 · 202 阅读 · 0 评论 -
ZOJ3494: BCD Code 题解
要使得数字的每一位二进制表示连起来的字符串中不出现某些给定的字符串,这是AC自动机+dp的模板题所以我们考虑数位dp,dp[i][0/1]表示当前考虑到十进制数的第i位,在AC自动机上的第j号节点,当前数是否紧贴上界的合法数的个数在AC自动机上判断一下是否合法,然后转移就好注意卡常数(比如提前对AC自动机的每个节点预处理好是否危险,再例如提前预处理从AC自动机的j出发加十进制位i会走到哪里)#in...原创 2018-02-10 23:16:40 · 276 阅读 · 0 评论 -
Codeforces #123D: String 题解
题目里说,如果某一种子串s在原串中出现了k次,根据题目定义的函数,它产生的贡献是(k+1)*k/2这个条件很奇怪,我们尝试转化模型,就会发现这个函数相当于我们将这k个s串排成一排,每个串和它自己以及后面的串匹配一次,总次数就是题目要求的函数于是我们可以上后缀数组+高度数组,对于每一个后缀,和后面的每一个后缀的算一个最长公共前缀,然后根据长度统计答案这个东西可以用单调栈搞一搞最后别忘...原创 2018-02-02 14:18:07 · 449 阅读 · 0 评论