string
WorldWide_D
这个作者很懒,什么都没留下…
展开
-
【COCI2013】slasticar
题目大意给出一个长度为n的字符串A,接下来给出m个字符串,对于每个字符串B,用给出的方法去与A匹配: 1. 设B的长度为L,先与A的位置为1…L的一段进行匹配:先比较A[1]和B[1],接下来比较A[2]和B[2],直到比较完A[L]和B[L]全部匹配或出现一个不相同(即A[i]≠B[i]) 2. 如果匹配失败,则匹配A的2..L+1和B的1..L,如果得不到长度为L的串(如:A的长度为12,L原创 2016-02-11 18:46:17 · 871 阅读 · 0 评论 -
[CF822E]Liar
题目大意给定两个字符串S和T。你可以把S分成若干段,从左到右从1开始编号。现在要从你分出来的段中取出不超过x段,按编号从小到大依次拼接成字符串T。问是否有可行解。1≤|T|≤|S|≤100000 x≤30分析考虑DP。设f[i][j]表示用了S的前i个字符,取出了j段,最大能得到T的前多少个字符。 转移分两种情况: 1. f[i][j]—>f[i+1][j] 表示字符i+1单独成段且没被选原创 2017-07-11 09:41:24 · 981 阅读 · 0 评论 -
[bzoj2534]Uva10829L-gap字符串
题目描述有一种形如uvu形式的字符串,其中u是非空字符串,且V的长度正好为L,那么称这个字符串为L-Gap字符串 给出一个字符串S,以及一个正整数L,问S中有多少个L-Gap子串. L≤10 字符串长≤50000分析这道题难度挺大的。。。 考虑一个合法的UVU串。假设两个U结束位置分别是i,j(i < j)。 设两个前缀i,j的最长公共后缀长度为len。那么i,j合法时满足以下两个条件:原创 2017-02-28 22:33:58 · 457 阅读 · 0 评论 -
[codeforces616F]Expensive Strings
题目大意给出n个字符串以及一个n个元素的c数组。 定义一个字符串s的价值为:∑i=1nc[i]∗p[s][i]∗|s|\sum_{i=1}^n c[i]*p[s][i]*|s| 其中p[s][i]为字符串s在第i个字符串中出现的次数。 求价值最大的字符串的价值。数据范围n≤100000 字符串总长≤500000 ci的绝对值不超过10710^7分析答案肯定是n个字符串中的某一个串的子串原创 2016-07-14 20:46:07 · 493 阅读 · 0 评论 -
[51nod1647]小Z的trie
Description小Z打算去冲击省选,于是开始学习trie。 有一天,他得到了N个字符串。 他先建立一个根节点,对于每一个字符串,他都从根节点开始一点点插入。 小Z不满足于此。他的大脑里盘旋着M个问题: 如果给定一个二元组(s,t)(s,t都是trie中的节点且s是t的祖先), 存在多少个二元组(x,y)(x,y都是trie中的节点且x是y的祖先), 满足s~t路径上的字符串和原创 2016-07-18 20:36:56 · 717 阅读 · 0 评论 -
[bzoj3682]Phorni
题目大意给你一个字符串,初始长度为len,还有一个n个元素的序列P。接下来m个操作,有三种类型,分别是: 1. 在字符串前面加入一个字符 2. 修改P中一个元素的值 3. 询问对于所有i∈[l,r],S[L-P[i]+1..L]字典序最小的i(有多个则输出最小的i,L是当前字符串长度)Data Constraint对于 100% 的数据, 1≤n≤500000, 1≤m≤800000,1≤Pi原创 2016-10-09 20:52:53 · 884 阅读 · 0 评论 -
[codeforces585F/51nod1587]Digits of Number Pi
题目大意有一个字符串S。给定两个数x,y保证x,y都是d位数且没有前导0,求[x,y]中有多少个数满足:S中存在一个长度为⌊d2⌋\lfloor \frac{d}{2} \rfloor的子串,它也存在于这个数中。|S|≤1000 d≤50 答案对109+710^9+7取模。分析首先答案可以等于[1,x-1]的答案减[1,y]的答案。 观察数据范围,|S|≤1000,d≤50,那么S所有长原创 2016-12-12 20:59:54 · 543 阅读 · 0 评论 -
[hackerrank Palindromic Border]
题目大意对于一个字符串S,定义函数P(S)表示满足以下的不同字符串a个数: 1. a同时是S的前缀和后缀 2. a≠S 3. a是回文串 给你一个字符串S,求∑|S|i=1∑|S|j=iP(s[i..j])\sum_{i=1}^{|S|} \sum_{j=i}^{|S|}P(s[i..j])模109+710^9+7的值|S|≤100000分析考虑枚举子串的右端点。 如果直接统计每个子串的答原创 2016-11-15 22:09:46 · 709 阅读 · 0 评论 -
hashit
题目大意你有一个字符串S,开始为空,现在有两种操作: 1. 在S后面加入一个字符c 2. 删除S最后一个字符(保证进行该操作时S不为空) 每次操作后输出当前S中有多少个不同的连续子串。操作数不大于100000在线做法这道题可以离线建trie,然后打个sam。(然而我打的是在线)在线维护字符串,维护插入、删除操作,很容易想到后缀平衡树。如果字符串是静态的,统计S中不同子串个数的经典做法是用后缀数原创 2016-10-06 19:19:26 · 831 阅读 · 0 评论 -
后缀自动机学习小记
好像很久没有写blog了…例题【SPOJ】 Longest Common Substring II 题目大意:给出N(N <= 10)个长度不超过100,000的字符串,求他们的最长公共连续子串。 限制: Time limit: 0.236s Source limit: 50000B Memory limit: 1536MB分析哈希首先想到用二分+hash,这里不细讲了 但是O(原创 2016-02-04 22:42:25 · 1379 阅读 · 2 评论 -
String
Description有两种字符串S,T。长度分别为n,m。现在需要在S里面有序地选出k个子串,且在T中出现的顺序与这k个子串的顺序相同。问这k个子串最大的长度和Input第一行三个数n,m,k 第二行长度为n的S串 第三行长度为m的T串Output一个数表示答案Sample Input9 12 4 bbaaababb abbbabbaaabaSample Output7Data Const原创 2016-07-08 18:30:52 · 333 阅读 · 0 评论 -
[Scoi2016]背单词
做的时候题意理解错了,然后爆0。。题目大意给你n个两两不同字符串,把它们按任意顺序排列。对于排列中的第i个字符串: 1. 如果存在一个字符串是它的后缀,并且不在它前面,那么费用增加n*n 2. 如果它的前面不存在一个是它的后缀,那么费用增加i 3. 如果前面存在一个是它的后缀,那么费用增加i-j(j是前面所有它的后缀中,最后的位置)数据范围n≤100000 字符串总长≤510000分析后缀比原创 2016-07-15 18:33:53 · 742 阅读 · 0 评论 -
[Tjoi2016&Heoi2016]字符串
Description佳媛姐姐过生日的时候,她的小伙伴从某东上买了一个生日礼物。生日礼物放在一个神奇的箱子中。箱子外边写了一个长为n的字符串s,和m个问题。佳媛姐姐必须正确回答这m个问题,才能打开箱子拿到礼物,升职加薪,出任CEO,嫁给高富帅,走上人生巅峰。每个问题均有a,b,c,d四个参数,问你子串s[a..b]的所有子串和s[c..d]的最长公共前缀的长度的最大值是多少?佳媛姐姐并不擅长做这样的原创 2016-07-12 16:24:01 · 889 阅读 · 0 评论 -
[bzoj4545] DQS的trie
题目大意有一个非严格的Trie,有三种操作:新加一个子树、求Trie上本质不同的字符串个数、询问一个字符串在trie上的出现次数。分析很容易想到用SAM来做。 在线用LCT维护即可。 然而这题允许离线,这里我用了个离线的做法。 首先把最终的trie构出来,建个SAM,然后每当新加入节点就把相应的信息加进去。 现在看看如何处理两个询问: 1. 询问本质不同的字符串个数。这个显然等于当前SAM原创 2017-07-13 19:45:35 · 552 阅读 · 0 评论