分块套分治_专题_LCA
JueFan 一只绝帆

分块套分治

P5611 [Ynoi2013] D2T2

给一个长为 nn 的序列,有 mm 次查询操作。

查询操作形如 l  r  L  Rl\;r\;L\;R,表示将序列中值在 [L,R][L,R] 内的位置保留不变,其他的位置变成 00 时,序列中 [l,r][l,r] 区间内的最大子段和,这个子段可以是空的。

对于 100%100\% 的数据,1n,m1051\leq n,m \le 10^5,序列中所有数的绝对值 109\le 10^9

简单来说就是只考虑矩形内的点的最大子段和。

考虑一个区间内只有 lenlen 个值,将序列按 BB 分块,每块我们暴力求出 B2B^2 个值域区间对应的半群信息,求法就是暴力递归,T(n)=O(n2)+2T(n/2)T(n)=\mathcal O(n^2)+2T(n/2),最后还是 O(B2)\mathcal O(B^2) 的,复杂度 O(nBB2+m(nB+B))\mathcal O(\frac nBB^2+m(\frac n B+B)),平衡到 O((n+m)n)\mathcal O((n+m)\sqrt n)

合并的过程可能需要带 log\log

空间限制 64MB\text{64MB},需要将上述过程离线,每块预处理即可。

P7881 [Ynoi2006] rmpq

P8078 [WC2022] 秃子酋长

 评论
评论插件加载失败
正在加载评论插件
由 Hexo 驱动 & 主题 Keep
总字数 231.7k 访客数 访问量