jzoj6152
Posted grice
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jzoj6152相关的知识,希望对你有一定的参考价值。
题意
给定(n)长度序列(a_i),对于一个平方串([i,i+len-1][i+len,i+2len-1]),(forall xin[i,i+len-1]),存在边((i,i+len,w_{len}))
求最小生成森林
做法
插点求出平方串,相当于([l,r])向([l+len,r+len])连(w_{len})
这个可以转化成([l,l+2^i-1])向([l+len,l+len+2^i-1])连边,([r-2^i+1,r])向([r+len-2^i-1,r+len])连边
可以维护(logn)个并查集第(i)个维护([x,x+2^i-1])与([y,y+2^i-1])是否有连边
当在做([x,x+2^i-1])与([y,y+2^i-1])连边的时候,可以查询第(i)个并查集(x,y)是否有连边
- 有则退出
- 没有
(x,y)在该并查集连起来
若(i=0)则统计贡献
否则递归([x,x+2^{i-1}-1])与([y,y+2^{i-1}-1]),([x+2^{i-1},x+2^{i}-1])与([y+2^{i-1},y+2^i-1])连边
(O(nlognalpha(n)))
以上是关于jzoj6152的主要内容,如果未能解决你的问题,请参考以下文章