[CF1073G]LCP问题】的更多相关文章

题意:给一个长n的字符串S,q组询问,每组给两个集合A,B.求集合A中的点和集合B中的点所有组合情况的lcp的和. 思路: 好像比较常规,可是代码能力差还是调了1.5h.主要还是虚树板子不熟(加入的时候点要去重) SAM+虚树+虚树上dp 两个后缀的lca相当于后缀树上两个对应节点的LCA的len. dp就统计每个点为lca的方案数*len[lca] code: #include<bits/stdc++.h> using namespace std; const int N=4e5+5; ch…
题目传送门. 题意简述:给出 \(s\),多次询问给出长度分别为 \(k,l\) 的序列 \(a,b\),求 \(\sum_{i=1}^k\sum_{j=1}^l\mathrm{LCP}(s[a_i:n],s[b_j:n])\). Yet Another 套路题. 如果你做过 P4248 [AHOI2013]差异 应该可以很快秒掉这题. 我们先对 \(s\) 进行后缀排序,求出 height 数组,并将 \(a_i,b_i\) 替换为 \(rk_{a_i},rk_{b_i}\),那么题目就变为…
反正先求一遍sa 然后这个问题可以稍微转化一下 默认比较A.B数组中元素的大小都是比较它们rank的大小,毕竟两个位置的LCP就是它们rank的rmq 然后每次只要求B[j]>=A[i]的LCP(B[j],A[i]),然后再求A[j]>B[i]的LCP(A[j],B[i])即可 这两个其实是差不多的,下面只说B[j]>=A[i]的怎么算 排序以后从后往前推着做(当然从前往后也行) 用一个权值线段树记下来LCP(A[i],B[j])==x的B[j]的数量.以及这个数量*x的和 然后考虑怎么…
题目描述 记 $lcp(i,j)$ 表示 $i$ 表示 $i$ 这个后缀和 $j$ 这个后缀的最长公共后缀长度给定一个字符串,每次询问的时候给出两个正整数集合 $A$ 和 $B$,求$\sum_{i\in A,j\in B}lcp(i,j)$ 的值.   题解: 对反串建立后缀自动机. 这样,任意两个后缀树节点所代表的字符串的 $LCP$ 值就是两点最近公共祖先在自动机中的 $len$ 值. 问题转化为 $\sum_{i\in A,j\in B}len[LCA(id[i],id[j])]$ 其中…
http://www.lydsy.com/JudgeOnline/problem.php?id=1014 题意:支持插入一个字符.修改一个字符,查询lcp.(总长度<=100000, 操作<=150000) #include <cstdio> #include <cstring> #include <cmath> #include <string> #include <iostream> #include <algorithm&…
题目链接 题意:给两个长度不超过1e5的字符串,问两个字符串的连续公共子串最大长度为多少? 思路:两个字符串连接之后直接后缀数组+LCP,在height中找出max同时满足一左一右即可: #include<iostream> #include<cstdio> #include<cstring> #include<string.h> #include<algorithm> #include<map> #include<queue&…
题目链接 题意:给定长度为n(n <= 1000)的只含小写字母的字符串,问字符串子串不重叠出现最少两次的不同子串个数; input: aaaa ababcabb aaaaaa # output 2 3 3   思路:套用后缀数组求解出sa数组和height数组,之后枚举后缀的公共前缀长度i,由于不能重叠,所以计数的是相邻height不满足LCP >= i的. 写写对后缀数组倍增算法的理解: 1.如果要sa数组对应的值也是1~n就需要在最后加上一个最小的且不出现的字符'#',里面y[]是利用s…
2105: 增强型LCP Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 366  Solved: 86[Submit][Status] Description Input Output 对于每个Lcp(a,b)操作输出最长公共前缀 Sample Input 47 abab L 13 A 1 ab L 1 3 C 56 cb L 1 3 D 1 2 L 1 3 Sample Output 2 4 2 0 HINT Source 题解:这题...原来…
LCP Array Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 90    Accepted Submission(s): 26 Problem Description Peter has a string s=s1s2...sn, let suffi=sisi+1...sn be the suffix start with i…
http://acm.hdu.edu.cn/showproblem.php? pid=4691 去年夏天,更多的学校的种族称号.当时,没有后缀数组 今天将是,事实上,自己的后缀阵列组合rmq或到,但是,题意理解的一个问题,再折腾了很长时间,,,, 此处简单解释下题目例子吧,希望对读者有帮助  以最后一组数据为例 myxophytamyxopodnabnabbednabbingnabit 6 0 9 9 16 16 19 19 25 25 32 32 37 前两行不解释,题目叙述非常清楚 从第三行…