欢迎光临散文网 会员登陆 & 注册

CF竞赛题目讲解_CF1635F(反序树状数组)

2022-08-13 10:54 作者:Clayton_Zhou  | 我要投稿

https://codeforces.com/contest/1635/problem/F


x 递增,考虑维护 w。

1.考虑单点匹配,由 w  大的匹配 w  小的。

显然,若 i < j < k ,且 w_j<=w_k, 那么最优的匹配一定不是 (i,k)。

因为(i,k)的值大于 (i,j)。 所以 (j,k)是一个可能选项。


故维护每个点 i,只需要考虑记录i左右边第一个(如果存在的话)满足  w_j<=w_i  的 j,分别记作 L_i  和  R_i


2.区间上最优解。

自然会有疑问:对于一个单点 i,i左右边第一个满足 权重小于 w_i  的点为 L_i  与 R_i,

  但是 i  本身却可以和区间内其他节点构成本区间的最优解呢?


对于询问区间  [Lq,Rq],如果有带权距离最小的点对 (a,b) ∣ w_a<=w_b ,满足 a < L_b < b.

由于 w_Lb<=w_b, 根据1的讨论,(a, L_b)的值小于(a,b)的值, (a,b)一定不是最优解。矛盾。


对于询问区间  [Lq,Rq],如果有带权距离最小的点对 (a,b) ∣ w_a>w_b ,满足 a < R_a < b.

由于 w_Ra<=w_a, 类似根据1的讨论, (R_a, b)的值小于(a,b)的值,(a,b)一定不是最优解。矛盾。


综上,我们得到结论:区间内的带权距离最小的点对一定属于那 最多2n 个点对之中。

即答案匹配只能是区间中所有  (L_i,i)和  (i,R_i) 中最小值。


input

5 5

-2 2

0 10

1 1

9 7

12 2

1 3

2 3

1 5

3 5

2 4


CF竞赛题目讲解_CF1635F(反序树状数组)的评论 (共 条)

分享到微博请遵守国家法律