∗256768 .
∗1792364 .
value:+∞
考虑操作分块,每
O(B) 个操作分一个块,定义
Qi′ 为第
i 个操作所在块,
Wi 为第
i 个块中第一个操作的编号,
Ei 为第
i 个块中最后一个操作的编号。
枚举
i∈[1,QQ′] ,定义
S←{1,N+1}+j=Wi∑Ei{Lj,Rj+1} ,将
S 去重并排序,得到
S′ 。
现在我们定义
beli=1≤j≤(∣S′∣−1),Sj′≤imax(j) 。
回想一下原题(P9530)的思路,我们需要求出一类支配点对,并求出它们的覆盖集大小,这些支配点对形如
(l,r)(r−l≥2) ,需要满足的条件是
(i=l+1∑r−1ai)<min(al,ar) ,容易发现满足该条件的必要不充分条件是
(i=l+1maxr−1ai)<min(al,ar) 。我们有经典结论:
- 结论一:满足 (i=l+1maxr−1ai)<min(al,ar) 的 (l,r) 对数为 O(n) 对。
定义
li=j<i,aj>aimax(j),ri=j>i,aj>aimin(j)
我们考虑对于每个支配点对
(l,r),令
w←i=l+1argmaxr−1(ai) ,容易发现
l=lw,r=rw ,那么我们大胆一点,给出结论:
- 结论二:满足 (i=l+1maxr−1ai)<min(al,ar) 的 (l,r) 点对和所有 li=∅,ri=∅ 的 (li,ri) 点对一一对应构成双射。
证明略。
那么这样子咱们就可以快速找出全局或区间内的支配点对了,定义
Li=Si′,Ri=Si+1′−1 。
那么现在支配点对分为
bell=belr 的和
bell=belr 的。
考虑先做
bell=belr 的部分,我们有一个结论:
-
结论三:可能出现支配点对的
(bell,belr) 点对一共只有
O(B) 个。
-
证明:定义
sumi=j=Li∑Riaj ,满足要求的
(bell,belr) 必满足
j=bell+1∑belr−1(sumj)<min(sumbell,sumbelr) ,这样子就可以用结论一进行论证结论三。
还是运用结论二找出可能的
(bell,belr) 点对,对于这部分内部具体的点对如何寻找,我们还有结论:
-
结论四:
(l,r)(bell=belr) 合法的必要不充分条件是
(j=l+1∑Rbellaj)<al 且
(j=Lbelr∑r−1aj)<ar 。
-
结论五:对于同一个块中,满足结论四中讲述的任意一个条件的
i 共
O(logV) 个。
-
结论六:对于大部分的支配点对,它们都满足在修改前也是支配点对,不满足的只有每个块
O(1) 个,且可以
O(1) 找出这些不满足的点对。
对于每一个可能的
(bell,belr) ,可以在
O(logV) 的时间内用基数排序大力做完寻找支配点对的部分。
对于
bell=belr 的部分,我们还有结论:
- 结论七:r−l≥3 时,如果 (l,r) 是支配点对,它一定在修改前也是支配点对。证明略。这部分所覆盖的面积可以 O(Bn2+nf(Bn,B)) 算出来,具体的方法是整体分块,大量分块科技处理,其中 f(n,m)←O(B2B22wn2m2+wB2B22+mB2) ,其中 B←n,B2←m 。
结合各部分,这题就做完了,复杂度
O(Bn2+nBlogV) ,
B 取
O(logVn) 时最优,复杂度是
O(nnlogV) 。