显然答案等于模式串si和模板串的每一个后缀的匹配长度之和。(这里忽略了匹配成功的情况,那种情况只需要额外特判一些东西。) 显然可以用线段树合并维护出right集合。 按照要求查询即可。 cpp include include include include include include inclu ...
分类:
其他好文 时间:
2019-01-04 21:59:39
阅读次数:
199
"传送门" 没想出来→_→ 首先不难看出要差分之后计算不相交也不相邻的相等子串对数,于是差分之后建SAM,在parent树上用线段树合并维护endpos集合,然后用启发式合并维护一个节点对另一个节点的贡献,于是总的时间复杂度为$O(n\log^2n)$ ...
分类:
其他好文 时间:
2019-01-02 12:38:50
阅读次数:
174
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3545 [算法] 离线加边 , 用并查集维护连通性 , 然后线段树合并即可 时间复杂度 : O(NlogN) [代码] ...
分类:
其他好文 时间:
2018-12-31 22:40:33
阅读次数:
276
"传送门" 感觉我去pkuwc好像只有爆零的份…… 设$f_{u,i}$表示$u$取到$i$的概率,那么有如下转移 $$f_{u,i}=f_{ls,i}(p_u\sum_{ji}f_{rs,j})+\\f_{rs,i}(p_u\sum_{ji}f_{ls,j})$$ 然后用线段树合并即可,最后在根节 ...
分类:
其他好文 时间:
2018-12-30 17:35:39
阅读次数:
166
题意 一个 $1$ 到 $n$ 的全排列,$m$ 种操作,每次将一段区间 $[l,r]$ 按升序或降序排列,求 $m$ 次操作后的第 $k$ 位。 $1 \leq n \leq 10^5$ 思路 两个 $\log$ 的做法展现了二分答案的强大功能。首先二分枚举第 $k$ 位的值,然后将小于等于它的数 ...
分类:
其他好文 时间:
2018-12-27 18:26:44
阅读次数:
151
题目描述 给一个小写字母字符串 S ,q 次询问每次给出 l,r ,求 s[l..r] 的 Border 。 Border: 对于给定的串 s ,最大的 i 使得 s[1..i] = s[|s|-i+1..|s|], |s| 为 s 的长度。 题解 这题的描述很短,给人一种很可做的假象。 暴力1:每 ...
分类:
其他好文 时间:
2018-12-22 22:08:06
阅读次数:
223
题目描述 题解: 最开始我想倒建倒查,结果发现需要另开线段树维护,结果算法退化了…… 说正解。 正建正查。 线段树合并+SAM。 将询问串放在SAM中,判断是否有匹配。 然后设定边界就可以了。 代码: ...
分类:
其他好文 时间:
2018-12-15 12:07:53
阅读次数:
169
题解: 首先这个东西因为强制在线区间查询 所以外面得套线段树了 然后考虑几条线段怎么判定 我们只需要按照右端点排序,然后查询的时候查找最右节点的前缀最大值就可以了 然后怎么合并子区间信息呢 (刚开始我很zz的觉得应该要线段树合并。。) 线段树都保证了区间一样大每个点暴力也就会算log次。。 于是就直 ...
分类:
其他好文 时间:
2018-12-11 18:43:48
阅读次数:
166
[luogu4556]雨天的尾巴 "luogu" 发现是一顿子修改然后再询问,那么把修改树上差分一下再线段树合并 但是... 如果你只有35分... "https://www.luogu.org/discuss/show/88259" cpp include using namespace std; ...
分类:
其他好文 时间:
2018-12-11 11:15:55
阅读次数:
200
题目传送门:bzoj2333 luoguP3273 这操作还真“棘手”。。听说这题是可并堆题?然而我不会可并堆。于是我就写了线段数合并,然后调了一晚上,数据结构毁一生!!!QAQ…… 其实这题也可以把合并强行看成树上的关系然后dfs序后直接线段树的,然而我菜啊。。看到连边就只能想到线段树合并。 首先 ...
分类:
其他好文 时间:
2018-12-10 22:34:37
阅读次数:
282