loj6169 相似序列(可持久化线段树)

发布时间:2017-7-9 7:08:22编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"loj6169 相似序列(可持久化线段树) ",主要涉及到loj6169 相似序列(可持久化线段树) 方面的内容,对于loj6169 相似序列(可持久化线段树) 感兴趣的同学可以参考一下。

题目:

https://loj.ac/problem/6169

分析:

如果是要求两段序列全等的话,有一个套路:

对于{a1,a2,a3} {a4,a5,a6}

设一个素数p,那么如果p^a1+p^a2+p^a3==p^a4+p^a5+p^a6(模一个大质数意义下),那么这两个序列就是一模一样的

那么可以事先求出前缀和,然后对于每个询问,直接前缀和相减比较值即可

但是现在的问题是现在可以有一个位置不相同

我们考虑构建一个询问区间的权值线段树,下标就是a[i],值就是Σp^a[i]

那么很显然,如果对于询问的两个区间,它们的权值线段树的总和相同,那么就YES(是一模一样的)

然后我们可以找到两棵权值线段树最小的下标qmin,满足qmin前的位置,和相同;再找最大的下标qmax,满足qmax后的位置,和相同

然后我们发现,这个qmin和qmax在排序后的数组中的位置要“对齐”,也就是qmin在对应权值线段树中的排名要等于qmax在对应权值线段树中的排名

当然对于每个询问不能都构建一次权值线段树,所以当然用可持久化线段树来维护

O(nlogn+mlogn)

细节:

找到qmin和qmax后,不能确定qmin是属于[a,b]还是[c,d],所以要考虑两种情况,有一种成立就YES,略坑


上一篇:XYC2016上半年工作笔记整理
下一篇:ux.form.field.GridDate 支持快速选择日期的日期控件

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款