摘要: 枚举子串的中心,往两侧扩展,将两侧对应位置的字符交替写下来,得到一个字符串$S$。 若前后长度为$L$的子串循环同构,则在$S$中它们对应长度为$2L$的前缀,需要满足它可以由不超过$2$个偶回文串拼接而成。 有一个结论是,若$S=uv$,其中$uv$都是偶回文串,那么要么$u$是$S$的最长偶回文 阅读全文
posted @ 2017-08-10 02:55 Claris 阅读(1051) 评论(0) 推荐(0) 编辑
摘要: 把$($看作$-1$,$)$看作$1$,设$a$为前缀和,则相当于找两个位置$x,y$使得$a[x]=a[y]$,且$a[x]$是$[x,y]$的区间最大值。 求出询问区间的最大值$o$,然后找到$o$在该区间内最左和最右的出现位置,将其作为答案。 那么剩下的答案只可能在$[l,o)$或$(o,r] 阅读全文
posted @ 2017-08-10 02:19 Claris 阅读(496) 评论(0) 推荐(0) 编辑
摘要: 线段树维护每个点的最有可能是答案的数以及它的权重。 合并两个节点的时候,将权重互相抵消,保留较大的那一个。 得到答案后,再在对应权值的Treap中查询出现次数,检查是否真正是答案。 时间复杂度$O(n\log n)$。 阅读全文
posted @ 2017-08-10 01:20 Claris 阅读(450) 评论(0) 推荐(0) 编辑